Maven 可以用来管理工程,构建工具对于java开发人员来说是必须掌握的知识,本文介绍了利用eclipse构建工程,以及利用maven命令进行编译、打包。
1、构建maven环境
以本机为例,下载apache-maven-3.0.5-bin.zip,解压到E盘根目录下,修改maven解压目录下conf/settings.xml文件,修改属性本地仓库路径,此处设置为E:/jar/maven-jar。
添加环境变量,Path变量值添加:D:\apache-maven-3.0.5\bin;
在cmd命令行中输入:mvn -version 查看版本。
在Eclipse中安装maven插件,window--preferences-maven--installations设置maven环境路径,与settings文件。
2、构建maven工程
maven工程分普通的maven project和maven modules project。
普通的maven project工程构建步骤:
- 打开eclipse,选择File-New-Other-Maven project,如图1
图 1
- 单选“Create a simple project (skip archetype selection)” 如图2,
图 2
- 填写 Group Id 、Artifact Id、Version、Packaging(jar是普通的maven工程,war是普通的maven-web工程、pom是maven modules工程),如图3
图 3
图 4
src/main/java目录下存放 java代码,src/main/resources目录下存放相关的配置文件,src/test/java目录下存放测试文件,pom.xml配置相关属性。
- 如果创建maven-web的工程,在图3中的Packaging的war的选项,如图5,
图 5
图 6
从图中看出 多了 webapp,在此目录下新建 WEB-INF 、META-INF即可。
- 如果创建一个 多模块的maven工程,则创建时图3的Packaging选择pom选项,如图7,
图 7
- 选择 “Create a simple project (skip archetype selection)”,填写Module Name:ModuleTest,Parent Project:ModuleTest,如图9,
,
图 9
点击 next 如图10,
图 10
- 此时MavenTest工程下结构发生变化,如图11,
图 11
- 此时 MavenTest工程下的 pom.xml文件中 多了几行配置,如图 12,
图 12
3、maven工程的pom.xml配置说明
pom.xml文件包括自身属性、依赖(dependency)、聚合(modules)、继承(parent)。
<groupId> -- 组ID,一般可以写包路径
<artifactId> -- 组件ID,可以写工程名,GroupId与ArtifactId组合唯一
<version> -- 版本SNAPSHOT
<packaging> -- 打包,pom、jar、war等
<name> -- 名称
<repositories> -- 仓库,可以包含多个<repository>,配置<url>可以配置远程仓库http://ip:8081/nexus/content/groups/public
<dependencies> -- 依赖响应的jar包,其中包括多个<dependency>其中<scope>、<type>等属性
<modules> -- 可以包含多个<module>模块,适用于maven modules project
<plugins> -- 插件功能
<profiles> -- 包括多个<profile>,通过配置不同的<profile>环境,生产environment变量。
<build> -- <sourceDirectory> 、<outputDirectory>、<resources>
4、maven命令
mvn archetype:create -DgroupId=packageName -DartifactId=projectName 创建项目(这是Maven 2的生成方式)
mvn archetype:gernate (这是Maven 3的生成方式)
mvn compile 编译源代码
mvn package -P 打包 -P后面可以跟profile里面配置的Id环境
mvn install 在本地Repository中安装jar
mvn clean 清除产生的项目
mvn jar:jar 只打jar包
mvn clean install 删除再编译
mvn deploy 发布(发布jar包到nexus私服的时候,需要在pom.xml文件中配置<distributionManagement>,还需要在maven的conf/settings.xml配置<server>)
pom.xml添加
<distributionManagement>
<repository>
<id>Releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
settings.xml添加
<server>
<id>Releases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>Snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
具体参考文章:http://my.oschina.net/xiaokaceng/blog/169530 (引用其他作者)