一maven创建普通项目
准备工作:参考前面maven学习配置好maven插件及配置,jdk环境配置。
我使用的jdk为1.7 64位,eclipse为4.5 64位(注意jdk为64位要求开发工具必须为64位否则打开不了eclipse)
首先创建Maven Project
然后选中模式为quickstart
到处maven 创建Java项目成功。运行maven项目为:
查看控制台看到Build success表示测试成功。若是测试则 clean test (先清空后测试)
maven常用命令:
mvn compile 编译 mvn test 测试 mvn package 打包 mvn install 安装jar包
小技巧:
选中工程右击Maven--Upate Project(更新工程)/Disable Workspace Resolution(销毁工作空间关联)/Disable Maven Nature(销毁Maven工程,然后转换为普通项目,可以执行Configure--convert to Maven Project再次转换为Maven项目)
二maven创建web项目
首先创建maven Project
下一步默认配置,使用默认的工作空间,或者你可以自己选择其他的空间
一般我们都是web开发,所以选择maven-archetype-webapp
填写好相应的groupId,artifactId,version等信息
所有都完成后得到的项目图如下:如下截图表示创建成功。
此时只是一个maven 的web项目,在eclipse环境下的tomcat中还不能发布,所以,我们转换成eclipse 所支持的web项目,对着项目右键Preferences----->Project Facets点击右边的链接,然后看到java的版本是1.5,Dynamic web model 是2.3
接下来,我们选择Dynamic Web Module打勾(表示我们创建的的是web项目),注意选中的Dynamic web model的版本,你点击不同的版本最右边会显示对应的jdk版本。java版本默认为1.5,实际开发中用的是1.6可以修改为1.6。
到此,一个具有maven依赖的项目已经完成了。接下来,我们按照一些约定来规范我们的程序的开发以及测试等。
1.在main文件夹下新建一个java的文件夹
2.src文件夹下新建文件夹test并在test文件夹下新建java和resources文件夹。
注意创建项目显示形式一种是Package Explorer形式 一种是Navigator形式
这里一定要注意你创建的是Forder还是Source Folder文件夹,这2中文件夹完全是不同的文件夹,图标显示的也是不同的。这些文件表示Source Folder,
而这些文件则是Folder文件。还要注意下你所创建的文件可能创建不成功,查看下显示项目的形式,我本地这里是Packge Explor er可以切换到Navigator Explor形式下显示并创建你的文件。一定要创建如上截图所示表示创建成功。
改变一下java编译后生成的classes目录,我们这里有项目核心的java代码,也有test的测试代码,为了避免冲突和覆盖,所以建议手动更改一下编译后的目录双击每个源文件夹Output dolder
完成后就是一个完整的Eclipse环境下的Web项目了。目录结构如下
1.src/mian/java 该目录下存放项目的java文件
2.src/mian/resources该目录下存放项目的资源文件(如spring的xml等)
3.src/test/java 该目录下存放项目测试用的java文件
4.src/test/resources该目录下存放项目测试用的资源文件
到这里整个maven web项目创建成功了,那么我们配置maven web的jetty插件看是否能正常访问。
首先在pom.xml中创建jetty插件如下所示:
然后选中项目右击"Run As"--"Maven build..."--“jetty:run”查看控制台如下信息表示jetty服务器启动成功
最后打开我们的浏览器输入:localhost:8080如下信息表示我们maven web项目创建成功并能成功访问。
maven项目中pom.xml文件介绍:
modelVersion:表示model版本,目前固定为4.0.0;
groupId:表示本项目组Id,通常是组织包名,如com.deific.mystudy
artifactId:表示本项目的模块名。(模块编程)如mystudy-maven表示是项目mystudy中的mystudy-maven模块,是有关maven学习的模块。
version:表示版本号,如0.0.1-SNAPSHOT,其中第一0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号
packaging:表示打包形式默认为jar,还有war,zip,pom
name:表示项目描述名
url:表示项目地址
dependencies:表示本项目所依赖的所有其他项目(或jar包)
dependency:表示本项目依赖的某一个依赖项目
scope:表示这个依赖包的范围,有6个值
1、test 测试范围有效,在编译和打包时都不会使用这个依赖
2、compile 默认范围,在编译和打包时都会将依赖存储进去
3、provided 在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime 测试运行的时候依赖,在编译的时候不依赖。如jdbc运行只在运行和测试时用
5、system 与本地系统相关联,可移植性差
6、import 导入范围,它只使用在dependencyManagement中表示从其它的pom中导入dependecy的配置
optional:设置依赖是否可选,默认为false,子项目不可继承,为true可继承,必须引入该子项目
exclusions:排除依赖传递列表,用于在使用jar文件冲突时可以排除这个jar文件
dependencyManagement:依赖管理主要用于父模块中,如设置公用的依赖文件,在子模块中继承即可。
bulid:主要用于插件管理。<build><plugins><plugin></plugin></plugins></build>
注意:
当重新创建工程时(workspace)则要重新配置maven,正如使用自己安装的jdk一样,配置maven的installations和User settings,否则默认使用本地。重新安装系统则会丢失。