maven构件:artifact
生命周期阶段:phase
插件:plugin ->:单个或多个目标的集合
插件目标:goal ->一个目标是一个明确的任务,可以作为单独的目标运行,或者作为一个大的构建的一部分和其他目标一起运行
###Hello World:
①使用maven创建工程:mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.companyname.maven.study -DartifactId=exer1 -DpackageName=com.companyname.maven.study
命令详解:
mvn:是maven2的命令
archetype:generate称为一个 maven 目标,描述了将会在构建中完成的工作单元(unit of work)
-Dname=value:传入目标中的参数,
####pom.xml文件:
groupId , artifactId , packaging , version,是maven的坐标,他们唯一标识了一个项目
name , url 是POM提供的描述下元素
dependencies:定义项目的依赖
####生命周期:包含在一个项目构建中的一系列有序的阶段
生命周期阶段(phase):“构建生命周期中的一个步骤”,可以用生命周期阶段作为参数来运行 maven
注意:maven执行一个阶段的时候,回依次有序的执行前面的所有阶段,到命令指定的那个阶段为止。
####maven坐标(coordinates):用来唯一标识一个项目
groupId:团体、小组、组织、项目或其他团体,团体标识的约定是,以创建这个项目的组织名称的逆向域名开头
artifact:在groupId下的表示一个单独的项目的唯一标识符
version:一个项目的特定版本
maven仓库:是一个项目构件的集合
####依赖管理(Dependency Management):
一个项目将会包含很多依赖,也有可能包含依赖于其他构件的依赖,但是不用担心,maven 有一个强大的功能:支持传递依赖(transitive dependen)。你不必找出所有这些依赖然后把它们写在你的 pom.xml 里,你只需要加上你直接依赖的那些库,Maven会隐式的把这些库间接依赖的库也加入到你的项目中。Maven也会处理这些依赖中的冲突,同时能让你自定义默认行为,或者排除一些
定的传递性依赖。
###mvn:site:生成站点和报告。
site生命周期阶段不像默认生命周期阶段那样管理代码的生成,操作资源、编译、打包等等,site生命周期只关心处理在src/site目录下的site类容。
Maven Exec 插件:Exec插件允许你运行Java类和其他脚本,想要查看它的完整描述,可以执行:mvn help:describe -Dplugin=exec -Dfull
mvn dependency:resolve:浏览项目依赖
mvn dependency:tree:浏览依赖树
如果想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行:mvn install -X
###执行测试:mvn test
如果想要忽略失败的测试,让即使测试失败仍然可以产生构建输出,可以设置 Surefire 的 testFailureIgnore 这个属性为 true:
mvn test -Dmaven.test.failure.ignore=true
如果想要跳过单元测试,只需要使用Surefire 插件的 skip 参数:mvn install -Dmaven.test.skip=true。也可以通过配置pom.xml实现:
使用 Maven Assembly 插件的预定义装配描述符生成一个可分发的 JAR 文件:
Maven Assembly插件是一个用来创建你应用程序特有分发包的插件,你可以使用该插件以你希望的任何形式来装配输出,只需定义一个自定义的装配描述符。
要配置Maven Assembly插件,需要在 pom.xml 中添加如下配置:
添加好配置之后,可以通过运行 mvn assembly:assembly 来构建这个装配。