上一篇博客讲了如何使用eclipse的maven工程新建向导新建maven工程,可是发现新建出来的工程并不可用,通过探索,使用eclipse的普通向导新建符合maven结构的工程而且转换为maven工程,这个方法的可操做性强得多,下面我就来演示一下如何操做。java
老样子,eclipse要是正常工做的。web
先来一个符合maven项目结构要求的目录结构,好明确知道咱们的目标是什么,先来一个JavaSE的:spring
而后是Java web的:shell
红线划掉的就是原本就是“多余”的。apache
知道了目标结构,下面咱们就一步一步地来新建这些项目,先是Java SE,而后是Java Web.tomcat
首先进入“新建项目”的向导对话框:app
按照图中的说明,选择"Java Project",进入新建Java SE项目的向导,输入名字,点击“下一步”便可,eclipse
在进入的页面中,就是关键了,能够看出,如今的“Source Folder”和"Output Folder"都和预期的不同,webapp
因此说,要改!maven
修改的方法很简单,首先去除src目录的源代码目录属性,而后新添加自定义的目录到源代码目录列表中:
咱们要添加的源代码目录有:
src/main/java src/main/resources src/test/java src/test/resources
按照顺序将目录都添加好便可。
修改以后的效果以下图:
能够看到,“Source Folder”已经知足目标要求,可是“Output Folder”仍是不知足的,咱们须要对照着修改成
<basedir>/target/classes
也就是
而后直接点击“完成”就好了。
最后在project视图中的效果是:
进入新建项目的向导对话框,在项目类型选择的对话框中输入筛选条件“web”,选择“Dynamic Web Project”:
在下一步中,输入项目名称,在“Target Runtime”那里有可能会关联上tomcat,可是请选择为“None”,其余的默认便可,点击“下一步”:
和新建Java SE项目相似,这里也须要修改"Source Folder",只不过对话矿的样子变了,可是要作的事没有变。
在这里“Source Folder”的设置都是同样的,可是“output Folder”就有点不同了,默认的是“build\classes”,也就是说这个路径是基于项目的了,路径里面就没有包含项目名了,咱们须要将其修改成:
target/classes
到这里可不能点击“完成”,还有些设置项须要设置,点击进入“下一步”,
默认的“Content directory”是一个叫作“WebContent”的目录,这个就是web资源的根目录,全部的web资源的起始目录就是这个目录,显然这个目录不是咱们想要的,咱们须要修改成:
src/main/webapp
同时也把生成"web.xml"文件的选项勾选上,虽然如今支持免配置,可是实际上对于像spring这样的项目开发仍是很须要web.xml文件的。以后点击“完成”就能够了。
项目在“project exploer”视图中的效果是:
你们要注意,直接这样的话,web根目录(圈起来那里)“藏”得比较深,实际操做起来是有困难的,可是接下来将其往maven项目转换后就不存在这个问题了。
到目前为止,新建出来的两个项目都仍是普通的项目,并且那个web项目的web资源编辑起来还不是特别方便,世纪钟确定不会就这样完了的,接下来咱们须要将其转换为maven项目。
转换的方法很简单,eclipse已经内置的了,两个项目的转换方法同样,都是:项目上右键 -> Configure -> convert to maven project,
而后会有一个弹出框,要求填写项目的坐标什么的,能够默认,可是最好填写一下,
要注意“package”的选择,SE项目选择jar,web项目选择war。
对于Java SE项目来讲,转换为maven项目以后不会有太明显的视觉变化,因此就不截图了,可是对于Java Web项目来讲,肉眼可辨的变化就有点大了,截图一张:
项目的library直接由maven接管(java se项目也是同样,可是因为原先只有jre,因此看上去变化不是很大),web根目录里也有了一个“deployd resources”的节点,其实它只是一个映射罢了,里面 的webapp仍是原来的webapp,还有就是pom.xml文件,这个即是maven项目最关键的文件了,转换为maven项目后会自动新建这个文件,里面的信息就是这个项目的所有配置信息(其实还有一些是默认的,并无配置在这个文件里面)。
查看pom.xml文件:
java se项目的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.songxinqiang</groupId> <artifactId>tmjse</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source /> <target /> </configuration> </plugin> </plugins> </build> </project>
Java web项目的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.songxinqiang</groupId> <artifactId>tmjee</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
能够看出来,二者实际上是差很少的,只是“packaging”不同,而后对应着war包添加了一个对应的编译插件,对于这些配置的说明,能够查看Apache maven项目的官方说明,本文就不说了,之后有时间再说。
本文介绍了,如何经过eclipse新建项目向导新建符合maven项目结构的Java SE 项目和 Java Web项目,而且转换为maven项目,这种方式比使用eclipse自带的maven项目新建向导新建出来的项目要好,至少结构是符合了要求的,可是这种方法也不是最简单最好用的方法,之后的文章中将会介绍一种(我本身认为)“最佳”的方法。
下一篇将介绍将不符合maven结构的Java SE 和Java Web工程转换为maven工程,以及分析转换的结果。
enjoy!!!