我有一个托管在GitHub软件包注册表中的Maven软件包。
每当我对软件包进行更新时,我都会运行mvn deploy
来发布更改,但是如果我仅在依赖的应用程序上运行gradle install
似乎并不会安装软件包的最新版本
(不确定settings.xml
是否与此问题相关,因此我将其删除,但是可以在上一个问题的链接中看到它。)
我有一个similar issue在另一个依赖项中使用了软件包的最新快照版本,该快照版本使用Maven作为软件包管理器/构建工具,而不是Gradle。通过在Maven设置中选中“始终更新快照”复选框可以解决此问题。我也已经在此项目中选中了该框,但现在似乎无法解决该问题。
我尝试过的事情:
使缓存无效并重新启动IntelliJ
重新导入所有gradle项目
从我的build.gradle
中删除依赖项,然后重新导入项目并安装,然后再重新添加并重新导入所有项目并安装
正在运行./gradlew build -x test --refresh-dependencies
(由于失败,因此无法进行测试)
这是我运行gradle install
之后的日志:
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 install
。即使接受的答案提到他在使用Gradle时也遇到了类似的问题(但是我的问题也不是在部署上),他仍然说快照版本可以为表达的问题提供解决方案,并且我已经在其中使用了快照版本包。这个问题显然是完全不同的,完全与我无关。
答案 0 :(得分:1)
您已经使用IntelliJ尝试了很多事情,但是当您从命令行(./gradlew build
)运行构建时,就会发生问题。这应该很好地表明问题不在IntelliJ中。
默认情况下,Gradle会将更改后的依赖项(例如SNAPHOST依赖项)缓存24小时。在此期间,它将不会向存储库询问较新的版本。因此,如果您以相同的名称发布新版本,Gradle可能再过一天都不会看到它。
使用--refresh-dependencies
选项将使Gradle忽略缓存,从而再次下载工件。
您还可以通过ResolutionStrategy更改缓存保留期。您还可以将其配置为始终根据需要检查更改的依赖项。
在此处了解有关动态依赖项的更多信息:https://docs.gradle.org/current/userguide/dynamic_versions.html
如果您感到好奇,则默认情况下,Gradle工件缓存位于$USER_HOME/.gradle/caches/modules-2/files-2.1
中(数字可能会有所不同,具体取决于您所使用的Gradle版本)。此缓存与您在IntelliJ中提到的缓存无关。
此外,IntelliJ maven存储库浏览器中的身份验证错误是因为您的凭据在Gradle配置中,而不在IntelliJ中。因此,这也与Gradle无关。