java快照更新,java – Maven 3不会从本地存储库更新快照依赖项

我正在尝试在我的maven项目中使用外部库.由于我希望项目在任何机器上开箱即用,我不想使用mvn安装解决方案.因此我在我的pom.xml中定义了本地存储库:

com.test

fooLib

1.0-SNAPSHOT

....

in-project

always

true

In Project Repo

file://${project.basedir}/libRepo

问题是当我更换libRepo中的jar(没有更新版本号,因为它只是另一个快照)没有使用这个更新的jar(而是使用.m2目录的旧版本),即使对于mvn -U clean install

如何让maven更新这个jar?

编辑:

根据What exactly is a Maven Snapshot and why do we need it? maven将尝试找到永远不会发布的SNAPSHOT依赖版本,“即使在本地存储库中找到了这个库的版本”.我的设置有什么问题?

org.apache.maven.plugins

maven-install-plugin

hack-binary

validate

${repo.path.to.jar}

default

com.test

fooLib

1.0-SNAPSHOT

jar

true

install-file

正如对该解决方案的评论中所提到的,它不能单独工作,因此它与项目内存储库(当依赖在本地.m2存储库中不可用时工作)一起工作,而第二部分在每次构建期间刷新.m2.

然而,我仍然不清楚为什么普通的“SNAPSHOT”机制不起作用(即当前的脏解决方案也可以在没有SNAPSHOT的情况下工作,因为本地.m2 repo每次都被明确更新).有没有更干净的方式?

解决方案(基于Aaron的回答和讨论):问题是我尝试使用install-file将文件安装到libRepo中.实际的解决方案是,如果库更新,请使用

mvn deploy:deploy-file -Dfile=fooLib.jar -DgroupId=com.test \

-DartifactId=fooLib -Dversion=1.0-SNAPSHOT -Dpackaging=jar \

-Durl=file://..\libRepo -DrepositoryId=in-project

将其部署到回购.正确部署后,maven正确处理SNAPSHOT.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值