maven 使用中的疑惑

如果两个maven项目在一个工作空间下,如项目A和项目B,其中A依赖于B,则在B项目打开(非关闭)的情况下,A项目实际依赖的是工作空间下的B,而不是本地仓库里的B,此时,对B项目所作的任何修改,A项目都可以感知得到,并且在做代码跟踪的时候,可以看到此时的源代码指向的就是工作空间下的B。作为一个项目组的成员,如果大家都有这两个项目在eclipse的工作空间中,则只需更新svn即可,无需上传B项目到中央仓库。但是在B项目关闭的情况下,A项目会去本地的maven仓库获取对B项目的依赖,如果找不到,会提示编译错误。此时做代码跟踪的话,eclipse会去本地的maven仓库中寻找源代码。
如果A项目依赖于B项目,但是没有B项目的原始工程,则B项目就必须发布到中央仓库,然后,A项目通过maven update把B项目下载到本地仓库,才可以使用。
第一步:一个项目如果需要发布到中央仓库,需要在pom.xml文件中配置如下信息
[html] view plaincopy
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://10.58.120.19:8058/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://10.58.120.19:8058/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
主要是需要知道公司的maven中央仓库的IP地址。
对于一个项目来说,会可能使用以下公共生命周期阶段:

Ø Validate – 验证项目正确性,以及所有必要的信息是否齐备;

Ø Compile – 编译项目源代码;

Ø Test – 使用单元测试框架测试编译过的源代码。这些测试无需代码被打包或者部署;

Ø Package – 将编译过的代码打包,如JAR;

Ø Integration-test – 为了集成测试能够进行,处理和部署应用到合时的环境;

Ø Verify – 检查和检验package是否有效并且符合质量要求;

Ø Install – 将package安装到本地仓库,供本地其他项目使用(作为依赖项);

Ø Deploy – 在集成或者发布环境中,将最终的package拷贝到远程仓库,供其它开发人员或者项目共享。
记住,对于每个阶段,所有它之前的生命周期阶段都会执行,所以,你在命令行只要指定最后的那个就行。比如:

mvn install

如果执行这个命令的话,会编译、测试、打包、校验和安装package到本地仓库。



同时,同样的命令可以在多模块场景中使用。比如:

mvn clean install

这个命令会遍历所有的子项目,对每个子项目执行clean和install(包括所有install之前的阶段)。

[color=red][b]maven依赖于其他module,自动将其他module依赖的jar包下载到本目录依赖目录中[/b][/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值