Maven学习笔记

2016-08-31  本文已影响0人  gengh

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 来构建这个装配。

上一篇 下一篇

猜你喜欢

热点阅读