maven基础二

1.前一章节总结

     我们用两种类型的命令行参数运行了Maven。第一条命令是一条单个的插件目标,Archetype 插件的create 目标。Maven 第二次运行是一个生命周期阶段 –install。为了运行单个的Maven 插件目标,我们使用mvn archetype:create 这样的语法,这里archetype 是一个插件标识而create 是目标标识。

 

     我们通过命令行参数-DgroupId=org.sonatype.mavenbook.ch03和-DartifactId=simple 向Archetype 插件的create 目标传入了groupId 和artifactId 配置参数。我们也向create 目标传入了packageName 参数,它的值为org.sonatype.mavenbook。如果我们忽略了packageName 参数,那么包名的默认值为org.sonatype.mavenbook.ch03。

 

 

2.maven的生命周期

     生命周期的阶段被特地留得含糊,但是大部分项目具有:单独的定义为验证(validation),测试(testing),或者发布(deployment)!

 

3.Maven 仓库(Repositories)

     当你第一次运行Maven 的时候,你会注意到Maven 从一个远程的Maven 仓库下载了许多文件。在Maven 中,构件和插件是在它们被需要的时候从远程的仓库取来的。初始的Maven 下载包的大小相当的小(1.8 兆),其中一个原因是事实上这个初始Maven 不包括很多插件。

     浏览中央Maven 仓库http://repo1.maven.org/maven2/

 

4.Maven 依赖管理 (Dependency Management)
     一个复杂的项目将会包含很多依赖,也有可能包含依赖于其它构件的依赖。这是Maven 最强大的特征之一,它支持了传递性依赖(transitive dependencies)。

     假如你的项目依赖于一个库,而这个库又依赖于五个或者十个其它的库(就像Spring或者Hibernate 那样)。你不必找出所有这些依赖然后把它们写在你的pom.xml 里,你只需要加上你直接依赖的那些库,Maven 会隐式的把这些库间接依赖的库也加入到你的项目中。Maven 也会处理这些依赖中的冲突,同时能让你自定义默认行为,或者排除一些特定的传递性依赖。

     在Maven 中一个依赖不仅仅是一个JAR。它是一个POM 文件,这个POM 可能也声明了对其它构件的依赖。这些依赖的依赖叫做传递性依赖,Maven 仓库不仅仅存贮二进制文件,也存储了这些构建的元数据(metadata),才使传递性依赖成为可能。

    

     项目A 依赖于项目B 和C,项目B 依赖于项目D,项目C 依赖于项目E,但是项目A 所需要做的只是定义对B 和C 的依赖。当你的项目依赖于其它的项目,而这些项目又有一些小的依赖时(向Hibernate, Apache Struts 或者Spring Framework),传递性依赖使之变得相当的方便。Maven 同时也提供了一种机制,能让你排除一些你不想要的传递性依赖。

 

5.站点生成和报告 (Site Generation and Reporting)

另外一个Maven 的重要特征是,它能生成文档和报告。在simple 项目的目录下,
运行以下命令:mvn site

将在target文件夹下,创建site文件夹,里面为项目的报告!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值