当前位置: 首页 > 知识库问答 >
问题:

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

芮星海
2023-03-14

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

每当我对包进行更新时,我都会运行mvn deploy来发布更改,但是如果我只是在依赖的应用程序上运行gradle install,它似乎不会安装包的最新版本(不确定settings.xml是否与这个问题相关,所以我删除了它,但是可以在前面问题的链接中看到它)。

我在另一个依赖者中使用该包的最新快照版本时遇到了类似的问题,该依赖者使用Maven作为包管理器/构建工具,而不是Gradle。通过在Maven设置中选中“始终更新快照”的复选框,解决了这一问题。我也选中了这个项目中的复选框,但它似乎并不能解决现在的问题。

我试过的:

>

  • 使缓存无效并重新启动IntelliJ

    重新部署所有分级项目

    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'.
    
    maven {
            url "https://maven.pkg.github.com/companyname/packagename"
            credentials {
                username "TaylorBurke"
                password "*****************"
            }
        }
    

    所以就是这样,我想我把一切都包括在内了。这是Maven、Gradle还是IntelliJ的配置问题吗?

    编辑:因为有人建议关闭这个问题,所以我要指出的是,指向另一个问题的链接并不针对使用Gradle安装,它只是针对运行mvn deploy后的一个错误。我已经成功地部署了新包,并且可以从我的其他应用程序获得新版本。我的问题特定于gradle install。即使被接受的答案提到他在使用Gradle时遇到了类似的问题(但我的问题也不是部署问题),他继续说快照版本将为所表达的问题提供解决方案,并且我已经在这个包中使用了快照版本。这个问题显然与我的问题完全不同,一点关系也没有。

  • 共有1个答案

    满勇军
    2023-03-14

    对于IntelliJ,您已经尝试了很多方法,但是当您从命令行(./gradlew build)运行构建时,就会出现问题。这应该是一个很好的迹象,表明问题不在Intellij。

    默认情况下,Gradle将缓存变化的依赖项(例如,SNAPHOST依赖项)24小时。在此期间,它不会向存储库请求更新的版本。因此,如果你以相同的名字发布一个新版本,那么Gradle可能再过一天就看不到它了。

    使用--refresh-dependencies选项将使Gradle忽略缓存,从而再次下载工件。

     类似资料: