我有一个项目,使用Gradle将我们的SNAPSHOT工件发布到远程Maven存储库。
当我发布到Maven时,时间戳和内部版本号将附加到Jar名称。我试图从其他项目之一下载最新版本,即myjar-1.6.0-20170926.190543-10.jar。除非我将其从.gradle中删除或重新启动我的工作空间,否则我无法下载。
myjar-1.6.0-20170926.162756-7.jar
myjar-1.6.0-20170926.162756-7.jar.md5
myjar-1.6.0-20170926.162756-7.jar.sha1
myjar-1.6.0-20170926.162756-7.pom
myjar-1.6.0-20170926.162756-7.pom.md5
myjar-1.6.0-20170926.162756-7.pom.sha1
myjar-1.6.0-20170926.182639-8.jar
myjar-1.6.0-20170926.182639-8.jar.md5
myjar-1.6.0-20170926.182639-8.jar.sha1
myjar-1.6.0-20170926.182639-8.pom
myjar-1.6.0-20170926.182639-8.pom.md5
myjar-1.6.0-20170926.182639-8.pom.sha1
myjar-1.6.0-20170926.182748-9.jar
myjar-1.6.0-20170926.182748-9.jar.md5
myjar-1.6.0-20170926.182748-9.jar.sha1
myjar-1.6.0-20170926.182748-9.pom
myjar-1.6.0-20170926.182748-9.pom.md5
myjar-1.6.0-20170926.182748-9.pom.sha1
myjar-1.6.0-20170926.190543-10.jar
myjar-1.6.0-20170926.190543-10.jar.md5
myjar-1.6.0-20170926.190543-10.jar.sha1
myjar-1.6.0-20170926.190543-10.pom
myjar-1.6.0-20170926.190543-10.pom.md5
myjar-1.6.0-20170926.190543-10.pom.sha1
依赖项目在
之下configurations.all {
resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
compile ( group: "com.test", name:"myjar", version: "1.6.0-SNAPSHOT", changing: true );
还尝试了
compile ( "com.test:myjar:latest.integration);
但没有成功。让我知道如何解决这个问题?
答案 0 :(得分:0)
您可以使用--refresh-dependencies
运行本地版本。有关详细信息,请参阅此问题的答案How can I force gradle to redownload dependencies?。
答案 1 :(得分:0)
我遇到了和你一样的情况。
我在应用程序端,当我从服务器端使用jar时,通过添加maven repo并在build.gradle中添加项目依赖项来包含jar,如下所示:
buildscript {
repositories {
mavenLocal()
maven { url 'http://maven.xxx.com/xxx/xxx/‘ }
}}
dependencies {
...
implementation ‘project_group_id:artifact_id:latest.integration’
}
我没有使用./gradlew build --refresh-dependencies
清除缓存,而是直接转到缓存文件夹/Users/your_user_name/.gradle/caches/modules-2/files-2.1
并删除本地jar,以便下载更新的jar。
但仍然失败...
最后,我们发现原因很奇怪: 我们包含了多个Maven存储库,一个存储库具有与所需项目相同的项目,但是每个版本代码只有一个版本,它位于Maven存储库的前面,我们可以从中下载最新的jar,因此它阻止了更新最新版本。 我们交换了这两个仓库的序列,问题就消失了。
在我的情况下,它与Maven配置或缓存无关,这是由于gradle中包含了回购协议。进一步的原因仍然需要挖掘。
希望可以帮助遇到相同问题的人。