有人可以通过GitHub软件包来获得Maven动态版本解析吗?
我希望能够声明一个具有动态版本的依赖项,并解决它,如下所示:
dependencies {
compile 'com.example:my-package:1.+'
}
在幕后,Gradle(我也假设Maven)使用名为maven-metadata.xml
的文件中的信息,其中包含存储库中存在的哪些软件包和版本的详细信息,以将动态版本解析为特定版本。 (例如,1.+
可能会解析为1.1.2
)。但是,当我发布到GitHub软件包时,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'
}
}
}