如何强制Gradle获取包的最新快照版本?
我在GitHub包注册表上托管了一个Maven包 每当我对包进行更新时,我都会运行如何强制Gradle获取包的最新快照版本?,gradle,build.gradle,Gradle,Build.gradle,我在GitHub包注册表上托管了一个Maven包 每当我对包进行更新时,我都会运行mvn deploy来发布更改,但如果我只是在依赖应用程序上运行gradle install,它似乎不会安装包的最新版本 (不确定settings.xml是否与此问题相关,因此我将其删除,但可以在我上一个问题的链接中看到) 在另一个dependent中使用包的最新快照版本时,我遇到了麻烦,它使用Maven作为包管理器/构建工具,而不是Gradle。通过在Maven设置中选中“始终更新快照”复选框,解决了这个问题。我
mvn deploy
来发布更改,但如果我只是在依赖应用程序上运行gradle install
,它似乎不会安装包的最新版本
(不确定settings.xml
是否与此问题相关,因此我将其删除,但可以在我上一个问题的链接中看到)
在另一个dependent中使用包的最新快照版本时,我遇到了麻烦,它使用Maven作为包管理器/构建工具,而不是Gradle。通过在Maven设置中选中“始终更新快照”复选框,解决了这个问题。我也勾选了这个项目中的复选框,但现在似乎无法解决这个问题
我所尝试的:
- 使缓存无效并重新启动IntelliJ
- 重新导入所有gradle项目
- 从my
中删除依赖项,然后重新导入项目并安装,然后将其添加回,并重新导入所有项目并安装build.gradle
- 正在运行
/gradlew build-x测试--刷新依赖项(测试被禁用,因为它们失败)
gradle安装后的日志:
4:07:08 PM: Executing task 'install'...
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :jar SKIPPED
> Task :install
BUILD SUCCESSFUL in 2s
3 actionable tasks: 1 executed, 2 up-to-date
4:07:10 PM: Task execution finished 'install'.
在我的build.gradle
中,我对依赖项使用以下语法(在依赖项下):
compile('com.companyname:packagename:0.0.3-SNAPSHOT')
这就是我在“存储库”下的内容:
maven {
url "https://maven.pkg.github.com/companyname/packagename"
credentials {
username "TaylorBurke"
password "*****************"
}
}
不确定它是否相关,但当我进入Maven设置尝试更新存储库时,会出现以下错误:
就是这样,我想我已经包括了一切。Maven、Gradle或IntelliJ是否存在配置问题
编辑:因为有人建议关闭此问题,我要指出的是,指向另一个问题的链接并不涉及使用Gradle进行安装,它只是在运行mvn deploy
后解决了一个错误。我已经成功部署了新包,可以从其他应用程序获取新版本。我的问题特定于gradle安装
。尽管公认的答案提到他在使用Gradle时遇到了类似的问题(但我的问题不是部署Gradle),但他接着说,快照版本将为所表达的问题提供解决方案,我已经在这个包中使用了快照版本。这个问题显然与我的问题完全不同。您已经用IntelliJ做了很多尝试,但是当您从命令行运行构建时就会出现问题(/gradlew build
)。这应该是一个很好的迹象,表明问题不在于IntelliJ
默认情况下,Gradle将缓存更改的依赖项(例如SNAPHOST依赖项)24小时。在此期间,它不会向存储库请求更新的版本。因此,如果您以相同的名称发布一个新版本,Gradle可能会在以后的某一天再也看不到它
使用--refresh dependencies
选项将使Gradle忽略缓存,从而再次下载工件
您还可以通过更改缓存保留期。如果愿意,还可以将其配置为始终检查已更改的依赖项
请在此处阅读有关动态依赖关系的更多信息:
如果您感到好奇,Gradle工件缓存默认位于$USER\u HOME/.Gradle/caches/modules-2/files-2.1
(数字可能会因您使用的Gradle版本而异)。此缓存与您在IntelliJ中提到的缓存无关
此外,IntelliJ maven存储库浏览器中的身份验证错误是因为您的凭据位于Gradle配置中,而不是IntelliJ中。所以这也与Gradle无关。好吧,看来我现在有了最新的版本,但我不知道实际的工作原理,我仍然希望更好地理解Gradle的安装过程……这是否回答了您的问题?似乎不相关我确实发现了另一个与此相关的问题,但它是完全相同的错误消息;即使您可以获取该软件包,但无法登录,您也可能不会发布它。谢谢您提供的信息,我现在对这个问题有了更多的了解