使用Eclipse-Maven-git做Java开发(9)--eclipse新建maven结构工程
2015-11-04 00:00
791 查看
摘要: 使用普通项目的新建向导新建符合maven项目结构的工程,并且转换为maven工程。
上一篇博客讲了如何使用eclipse的maven工程新建向导新建maven工程,但是发现新建出来的工程并不可用,经过探索,使用eclipse的普通向导新建符合maven结构的工程并且转换为maven工程,这个方法的可操作性强得多,下面我就来演示一下如何操作。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/4a7eeae0bec8e65244bbf9e890a3220b.jpg)
然后是Java web的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/456127e31b1ad51cea69b2de36b12904.jpg)
红线划掉的就是本来就是“多余”的。
知道了目标结构,下面我们就一步一步地来新建这些项目,先是Java SE,然后是Java Web.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/7b8be11c9da51a677599ebc944369309.jpg)
按照图中的说明,选择"Java Project",进入新建Java SE项目的向导,输入名字,点击“下一步”即可,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/fdc3558a92e58ffb818d8a44d84c597c.jpg)
在进入的页面中,就是关键了,可以看出,现在的“Source Folder”和"Output Folder"都和预期的不一样,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/66b0a6559cb50fde6687b7ef9816b3f0.jpg)
所以说,要改!
修改的方法很简单,首先去除src目录的源代码目录属性,然后新添加自定义的目录到源代码目录列表中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/3c0c99abf86af6c0a76966a5e02b7f05.jpg)
我们要添加的源代码目录有:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/91c6f6c21b3cbae456ad77491a5501ed.jpg)
按照顺序将目录都添加好即可。
修改之后的效果如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/747b96855058c3eaef06a8360eb5e569.jpg)
可以看到,“Source Folder”已经满足目标要求,但是“Output Folder”还是不满足的,我们需要对照着修改为
也就是
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/3ef9923246897ceacd9fea79fc6b81c9.jpg)
然后直接点击“完成”就行了。
最后在project视图中的效果是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/5bbe8d4187dd10134b43a833cc411e86.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/172b53ea3dbcdc843bd785479f070f34.jpg)
在下一步中,输入项目名称,在“Target Runtime”那里有可能会关联上tomcat,但是请选择为“None”,其他的默认即可,点击“下一步”:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/77aceea2cb025992336b817cf65f3165.jpg)
和新建Java SE项目类似,这里也需要修改"Source Folder",只不过对话矿的样子变了,但是要做的事没有变。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/a4ad8512878ad776eb57a38a939e2ae8.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/1d3830316da8d0bb1b42470997f577a4.jpg)
在这里“Source Folder”的设置都是一样的,但是“output Folder”就有点不一样了,默认的是“build\classes”,也就是说这个路径是基于项目的了,路径里面就没有包含项目名了,我们需要将其修改为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/11213518eacb8bd8f588a177e5440717.jpg)
到这里可不能点击“完成”,还有些设置项需要设置,点击进入“下一步”,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/e0d10173c92f90d154f65c2603b046df.jpg)
默认的“Content directory”是一个叫做“WebContent”的目录,这个就是web资源的根目录,所有的web资源的起始目录就是这个目录,显然这个目录不是我们想要的,我们需要修改为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/5296d8fe2d586faee57738d3de556319.jpg)
同时也把生成"web.xml"文件的选项勾选上,虽然现在支持免配置,但是实际上对于像spring这样的项目开发还是很需要web.xml文件的。之后点击“完成”就可以了。
项目在“project exploer”视图中的效果是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/9c11c0ce5b398167b2d0bee7470d1b87.jpg)
大家要注意,直接这样的话,web根目录(圈起来那里)“藏”得比较深,实际操作起来是有困难的,但是接下来将其往maven项目转换后就不存在这个问题了。
转换的方法很简单,eclipse已经内置的了,两个项目的转换方法一样,都是:项目上右键 -> Configure -> convert to maven project,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/4e699e39b452d038942ac43d6362c29d.png)
然后会有一个弹出框,要求填写项目的坐标什么的,可以默认,但是最好填写一下,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/2519d99d039101d990d5065adcb33f87.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/b5abfb53c0aa7c869f9b982d49d83f15.jpg)
要注意“package”的选择,SE项目选择jar,web项目选择war。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/e2e036b4320f6b41f2496c90f04c5dee.jpg)
项目的library直接由maven接管(java se项目也是一样,但是由于原先只有jre,所以看上去变化不是很大),web根目录里也有了一个“deployd resources”的节点,其实它只是一个映射罢了,里面 的webapp还是原来的webapp,还有就是pom.xml文件,这个便是maven项目最关键的文件了,转换为maven项目后会自动新建这个文件,里面的信息就是这个项目的全部配置信息(其实还有一些是默认的,并没有配置在这个文件里面)。
查看pom.xml文件:
java se项目的pom.xml:
Java web项目的pom.xml:
可以看出来,两者其实是差不多的,只是“packaging”不一样,然后对应着war包添加了一个对应的编译插件,对于这些配置的说明,可以查看Apache maven项目的官方说明,本文就不说了,以后有时间再说。
下一篇将介绍将不符合maven结构的Java SE 和Java Web工程转换为maven工程,以及分析转换的结果。
enjoy!!!
上一篇博客讲了如何使用eclipse的maven工程新建向导新建maven工程,但是发现新建出来的工程并不可用,经过探索,使用eclipse的普通向导新建符合maven结构的工程并且转换为maven工程,这个方法的可操作性强得多,下面我就来演示一下如何操作。
0、准备
老样子,eclipse要是正常工作的。1、目标
先来一个符合maven项目结构要求的目录结构,好明确知道我们的目标是什么,先来一个JavaSE的:![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/4a7eeae0bec8e65244bbf9e890a3220b.jpg)
然后是Java web的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/456127e31b1ad51cea69b2de36b12904.jpg)
红线划掉的就是本来就是“多余”的。
知道了目标结构,下面我们就一步一步地来新建这些项目,先是Java SE,然后是Java Web.
2、使用向导新建符合maven结构的Java SE项目
首先进入“新建项目”的向导对话框:![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/7b8be11c9da51a677599ebc944369309.jpg)
按照图中的说明,选择"Java Project",进入新建Java SE项目的向导,输入名字,点击“下一步”即可,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/fdc3558a92e58ffb818d8a44d84c597c.jpg)
在进入的页面中,就是关键了,可以看出,现在的“Source Folder”和"Output Folder"都和预期的不一样,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/66b0a6559cb50fde6687b7ef9816b3f0.jpg)
所以说,要改!
修改的方法很简单,首先去除src目录的源代码目录属性,然后新添加自定义的目录到源代码目录列表中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/3c0c99abf86af6c0a76966a5e02b7f05.jpg)
我们要添加的源代码目录有:
src/main/java src/main/resources src/test/java src/test/resources
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/91c6f6c21b3cbae456ad77491a5501ed.jpg)
按照顺序将目录都添加好即可。
修改之后的效果如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/747b96855058c3eaef06a8360eb5e569.jpg)
可以看到,“Source Folder”已经满足目标要求,但是“Output Folder”还是不满足的,我们需要对照着修改为
<basedir>/target/classes
也就是
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/3ef9923246897ceacd9fea79fc6b81c9.jpg)
然后直接点击“完成”就行了。
最后在project视图中的效果是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/5bbe8d4187dd10134b43a833cc411e86.jpg)
3、使用向导新建符合maven结构的Java Web项目
进入新建项目的向导对话框,在项目类型选择的对话框中输入筛选条件“web”,选择“Dynamic Web Project”:![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/172b53ea3dbcdc843bd785479f070f34.jpg)
在下一步中,输入项目名称,在“Target Runtime”那里有可能会关联上tomcat,但是请选择为“None”,其他的默认即可,点击“下一步”:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/77aceea2cb025992336b817cf65f3165.jpg)
和新建Java SE项目类似,这里也需要修改"Source Folder",只不过对话矿的样子变了,但是要做的事没有变。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/a4ad8512878ad776eb57a38a939e2ae8.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/1d3830316da8d0bb1b42470997f577a4.jpg)
在这里“Source Folder”的设置都是一样的,但是“output Folder”就有点不一样了,默认的是“build\classes”,也就是说这个路径是基于项目的了,路径里面就没有包含项目名了,我们需要将其修改为:
target/classes
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/11213518eacb8bd8f588a177e5440717.jpg)
到这里可不能点击“完成”,还有些设置项需要设置,点击进入“下一步”,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/e0d10173c92f90d154f65c2603b046df.jpg)
默认的“Content directory”是一个叫做“WebContent”的目录,这个就是web资源的根目录,所有的web资源的起始目录就是这个目录,显然这个目录不是我们想要的,我们需要修改为:
src/main/webapp
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/5296d8fe2d586faee57738d3de556319.jpg)
同时也把生成"web.xml"文件的选项勾选上,虽然现在支持免配置,但是实际上对于像spring这样的项目开发还是很需要web.xml文件的。之后点击“完成”就可以了。
项目在“project exploer”视图中的效果是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/9c11c0ce5b398167b2d0bee7470d1b87.jpg)
大家要注意,直接这样的话,web根目录(圈起来那里)“藏”得比较深,实际操作起来是有困难的,但是接下来将其往maven项目转换后就不存在这个问题了。
4、新建出来的项目向maven项目的转换
到目前为止,新建出来的两个项目都还是普通的项目,而且那个web项目的web资源编辑起来还不是特别方便,世纪钟肯定不会就这样完了的,接下来我们需要将其转换为maven项目。转换的方法很简单,eclipse已经内置的了,两个项目的转换方法一样,都是:项目上右键 -> Configure -> convert to maven project,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/4e699e39b452d038942ac43d6362c29d.png)
然后会有一个弹出框,要求填写项目的坐标什么的,可以默认,但是最好填写一下,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/2519d99d039101d990d5065adcb33f87.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/b5abfb53c0aa7c869f9b982d49d83f15.jpg)
要注意“package”的选择,SE项目选择jar,web项目选择war。
5、结果分析
对于Java SE项目来说,转换为maven项目之后不会有太明显的视觉变化,所以就不截图了,但是对于Java Web项目来说,肉眼可辨的变化就有点大了,截图一张:![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/15/e2e036b4320f6b41f2496c90f04c5dee.jpg)
项目的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项目的官方说明,本文就不说了,以后有时间再说。
6、总结
本文介绍了,如何通过eclipse新建项目向导新建符合maven项目结构的Java SE 项目和 Java Web项目,并且转换为maven项目,这种方式比使用eclipse自带的maven项目新建向导新建出来的项目要好,至少结构是符合了要求的,但是这种方法也不是最简单最好用的方法,以后的文章中将会介绍一种(我自己认为)“最佳”的方法。下一篇将介绍将不符合maven结构的Java SE 和Java Web工程转换为maven工程,以及分析转换的结果。
enjoy!!!
相关文章推荐
- maven学习
- maven插件maven-war-plugin的使用
- jenkins------部署项目到jboss eap下
- maven使用经验集
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- 傻瓜式用Eclipse连接MySQL数据库
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- 图解Eclipse j2ee开发环境的搭建过程
- ext for eclipse插件安装方法
- 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
- eclipse导入jquery包后报错的解决方法
- Eclipse 格式化代码时不换行与自动换行的实现方法
- Eclipse下jQuery文件报错出现错误提示红叉
- eclipse如何忽略js文件报错(附图)
- eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
- jquery库或JS文件在eclipse下报错问题解决方法
- 什么是eclipse,eclipse的意思解析