我如何强制 Gradle 获取我的包的最新快照版本?

How do I force Gradle to get the most recent snapshot version of my package?

我在 GitHub 包注册表上托管了一个 Maven 包。

每当我对包进行更新时,我 运行 mvn deploy 都会发布更改,但是如果我只是 运行 gradle install 在依赖应用程序上它不会'似乎没有安装最新版本的软件包 (不确定 settings.xml 是否与此问题相关,所以我将其删除,但可以在我上一个问题的 link 中看到)。

我有一个 在另一个依赖项中使用包的最新快照版本,它使用 Maven 作为包 manager/build 工具而不是 Gradle。通过在 Maven 设置中选中一个框以“始终更新快照”来解决这个问题。我也勾选了这个项目中的复选框,但现在似乎并没有解决问题。

我尝试过的:

这是我运行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 的配置问题?

编辑:因为有人建议关闭这个问题,所以我指出另一个问题的 link 没有解决使用 Gradle 进行安装的问题,它只是解决了 [= 之后的错误76=]宁mvn deploy。我已经成功部署了新包,并且可以从我的其他应用程序中获取新版本。我的问题特定于 gradle install。尽管接受的答案提到他在使用 Gradle 时遇到了类似的问题(但我的问题不在于部署)他继续说快照版本将为所表达的问题提供解决方案,而且我已经在使用此包中的快照版本。这个问题显然与我的完全不同,与我的完全无关。

您已经使用 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.

无关