转载

IDEA启动导入的web项目

使用idea从版本控制系统中导入项目或直接导入新项目后,我们使用idea启动该项目需要做的一些操作,非maven项目;

2.项目配置

2.1 Project

IDEA启动导入的web项目

2.2 Modules

项目的模块,一个项目中可以有多个子项目,每个子项目相当于一个模块

一般我们项目只是单独的一个,所以只需要配置一个模块,我们可以给模块添加框架

IDEA启动导入的web项目

根据我们项目中的使用到东西,添加对应的框架,并在框架里面确定一下相关的配置文件(因为不同IDE下,项目的文件结构可能不同 所以导入的项目我们要注意一下配置

模块配置根目下 分为了三个标签:Sources—— Paths—— Depedencies

IDEA启动导入的web项目

Sources标签下 主要显示项目的目录资源 那些是项目部署的时候需要的目录 有颜色提示

(比如绿色是测试目录 橘色是target的目录 这些部署的时候都不需要 大红色是我的项目下没有的 蓝色是真正需要部署)

Paths标签下

IDEA启动导入的web项目

可以指定项目的编译输出目录 也就是项目类 和 测试类的编译输出地址(替换掉了Project的默认输出地址)

Depedencies是项目的依赖

IDEA启动导入的web项目

我们可以点击右侧的+号 添加lib 比如tomcat的lib 默认加进来就是Provided

(和maven的里面的jar依赖差不多)

Provided 也就是项目部署的时候是忽略的 只是再编译项目的时候进行使用

Compile 是跟随着项目部署的 Test也是不部署的

2.3 Libraries

里面可以添加项目jar包 并且可以把多个jar放在一个组里面 类似于jar包整理

这个下添加的jar 会在Depedencies中显示(反之不可以)

2.4 Facts

项目的门面,说实话,真不知道这个是干嘛的,和modules差不多,主要是为了确认一下吧

2.5 Artifacts

先理解下它的含义,来看看官方定义的

artifacts: An artifact is an assembly of your project assets that you put together to test, deploy or distribute your software solution or its part. Examples are a collection of compiled Java classes or a Java application packaged in a Java archive, a Web application as a directory structure or a Web application archive, etc.

即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。

( jar:Java ARchive,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库;

war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;

exploded:在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。 ) 默认情况下,IDEA的 Modules 和 Artifacts 的 output目录已经设置好了,不需要更改,打成war包的时候会自动在 WEB-INF目录下生成classes,然后把编译后的文件放进去。

IDEA启动导入的web项目

注意红框的地方

第一个是我们需要添加项目的部署包 注意选择是exploded的war包

第二个是项目的输出目录 非maven项目这个可以设置到任何地方

( maven项目的需要特殊注意 这个后面再说)

第三个是输出结构(output layout) 参考图中的几个文件

(maven项目如果不使用maven的打包编译 注意图中WEB-INF下的lib要有项目部署的jar)

总结

本文基本总结了intellij中web项目部署的问题,以及如何去配置,因为网上也没有很具体的说明,所以这些都是自己摸索出来的,有不对的地方欢迎大家指正

原文  https://juejin.im/post/5ddf40e351882542a042e78a
正文到此结束
Loading...