maven中的三种工程:
1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。
2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。
3.jar工程:将会打包成jar用作jar包使用。
如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择。
一、创建Maven Project
1.File --> New --> Maven Project
如下图,选中Create a simple project
ps: 选择这个Create a simple project很重要,只有选择了这个,在下一步中才会出现packaging类型选项。
如果没有选择Create a simple project,则下一步中会不会出现packaging类型选项,系统已经默认packaging为jar。
3.输入Group Id, Artifact Id, Version, Packaging选择pom,因为创建的Maven Project是一个聚合模块,没有实际代码。Name, Description两项可以不用输入。因为创建的Maven Project是聚合模块,所以Parent Project不要选择。
二、创建Maven Module,Maven Module是Maven Project的子模块
1.选择上面创建的Maven Project,右击,如下图操作
2.选中Create a simple project,输入模块名称,点击Next
3.这里可以全部保持默认值,只需要选择这个工程的打包方式即可(Packaging:jar, pom,war)。
因为我要将这个子模块作为Java的Web应用程序,打包成war包并部署到tomcat,所以我选择packaging类型为war。
ps:jar包和war包的区别
jar:即Java Archive,Java的包,Java编译好之后生成class文件,但如果直接发布这些class文件的话会很不方便,所以就把许多的class文件打包成一个jar,jar中除了class文件还可以包括一些资源和配置文件,通常一个jar包就是一个java程序或者一个java库。war:Web application Archive,与jar基本相同,但它通常表示这是一个Java的Web应用程序的包,tomcat这种Servlet容器会认出war包并自动部署。
创建之后的效果如下图:
在maven_all工程下会出现maven_one子模块,同时出现一个带Deployment Descriptor的maven web工程 “maven_one”
从上图可以得知,此时的maven_one工程还是有错误的,点击pom.xml我们可以看到报错:
pom.xml出现web.xml is missing and <failOnMissingWebXml> is set to true
也就是缺少了web.xml文件。怎么解决这个问题呢?
右键单击Deloyment Descriptor,选择生成部署描述符存根:Generate Deployment Descriptor Stub。
工程就会生成web.xml文件,如下图:
如果你一开始选择子模块的packaging类型为jar,生成的项目结构如下图:
现在你想把它修改成war的packaging类型
右键点击maven_one工程 -》Build Path -》Configure Build Path -》选择Project Facets
ps: 如果右键点击maven_one工程有properties选项的,可以直接点击properties出现这个对话框。
点击这个倒三角形图标,一直拉到底部就可以看到properties
回到正题
点击"Convert to faceted form..."
选中Dynamic Web Module, 可以选择javascript(也可以不选)
在点击Further configuration available...进行配置
3.配置Content directory:"src/main/webapp", 并勾选生成web.xml的选项:
配置完成之后,点击确定,就可以吧maven_one工程改为war类型,项目结构如下图
参考:Eclipse创建Maven Project和Maven Module
pom.xml出现web.xml is missing and <failOnMissingWebXml> is set to true解决方案