Maven知识
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html
maven 自动构建项目
1.目录结构
目录 | 作用 |
${basedir} | 根目录 |
${basedir}/src/main/java | 项目的java文件目录 |
${basedir}/src/main/resources | 项目的资源文件目录 |
${basedir}/src/main/test | 项目的测试代码 |
${basedir}/src/main/resources | 项目的测试资源 |
2.创建项目
mkdir test
cd test
mvn archetype:generate -DgroupId=com.tan.helloworld -DartifactId=helloworld -Dpackage=com.tan.helloworld -Dversion=1.0-SNAPSHOT
archetype:generate 目标会列出一系列的 archetype 让你选择。
Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-quickstart ,是编号 #106
3.构建项目
cd helloworld
mvn package
4.深入了解Maven
POM (Project Object Model)
Maven 插件
Maven 生命周期
Maven 依赖管理
Maven 库
4.1Maven坐标
通过向个属性值定位一个存在的项目。
在 POM 中,groupId, artifactId, packaging, version 叫作 maven 坐标,它能唯一的确定一个项目。有了 maven 坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。一般 maven 坐标写成如下的格式:
groupId:artifactId:packaging:version
像我们的例子就会写成:
com.mycompany.helloworld: helloworld: jar: 1.0-SNAPSHOT
4.2.Maven插件
mvn archetype:generate
表示执行一个叫archetype插件的generate 目标。可以理解为生成项目文件等脚本动作由插件目标来完成。
插件目标通常会写成 pluginId:goalId
4.3Maven生命周期
mvn package
这里的 package 是一个maven的生命周期阶段 (lifecycle phase )。生命周期指项目的构建过程,它包含了一系列的有序的阶段 (phase),而一个阶段就是构建过程中的一个步骤。
process-resources 阶段:resources:resources
compile 阶段:compiler:compile
process-classes 阶段:(默认无目标)
process-test-resources 阶段:resources:testResources
test-compile 阶段:compiler:testCompile
test 阶段:surefire:test
prepare-package 阶段:(默认无目标)
package 阶段:jar:jar
目的是生成向target生成运行需要的jar等需要的文件。保证软件可被运行。
4.4Mave依赖
添加需要的项目。类似于导入jar包。比较引用spring,hibernate框架。清爽不用找一堆jar
Xml 代码
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
4.5.配制文件结构