有没有人设法让 Maven 动态版本解析与 GitHub 包一起使用?
我希望能够使用动态版本声明依赖项并解决它,如下所示:
dependencies {
compile 'com.example:my-package:1.+'
}
在幕后,Gradle(我假设也是 Maven)使用一个名为的文件中的信息,该文件maven-metadata.xml
包含存储库中存在哪些包和版本的详细信息,以将动态版本解析为特定版本(例如1.+
,可能解析为1.1.2
. 但是,当我发布到 GitHub Packages 时,Gradle 日志显示maven-metadata.xml
文件资源不存在,因此它会毫无错误地上传一个新资源。但是,当我尝试卷曲该文件时,我得到一个 404(这意味着我正在发布并且 GitHub 正在默默地删除该文件,或者该文件在 GitHub 中并且在发布后对我不可见)。
// inside the Gradle debug logs, showing successful upload
14:43:16.332 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Upload https://maven.pkg.github.com/ORG/REPO/com/example/group/artifact-id/maven-metadata.xml' completed
这给出了 404(当它应该解析为文件或给我一个重定向时,我可以-L
在命令上加上一个标志curl
):
curl -X GET -v -H 'Authorization: token <some token here>' https://maven.pkg.github.com/ORG/REPO/com/example/group/artifact-id/maven-metadata.xml
这是我用于依赖解析的存储库配置关闭;我使用一个相同的插件来使用闭包maven-publish
内的插件进行发布。publishing{}
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/ORG/REPO")
credentials {
username = 'some-user'
password = 'github-token-with-repo-scope'
}
}
}