如何使用命令行将 Maven 工件上传到 Github 包?

2022-09-04 23:08:58

我正在尝试将尚未构建的 Maven 项目上传到组织的 GitHub 包注册表。我正在使用deplod:deploy-file Maven插件来做到这一点。这是我一直在使用的命令:

mvn deploy:deploy-file 
-Dfile=[THE JAR FILE]
-Durl=https://maven.pkg.github.com/[ORG] 
-Dregistry=https://maven.pkg.github.com/[ORG] 
-DgroupId=[GID]
-DartifactId=[ARTIFACTID] 
-Dversion=[VERSION]
-DgeneratePom=false 
-Dtoken=[MY GITHUB TOKEN]

因此,我从Github收到401错误。我已确保:

  • 我在组织内部拥有足够的权限(当前所有者)。
  • 我正在使用的令牌是有效的,并且具有适当的范围:我将它们全部放在测试上。

此外,github 包页面指出:

<!-- Just a single step: Deploy using a GitHub token -->
$ mvn deploy -Dregistry=https://maven.pkg.github.com/[org] -Dtoken=GH_TOKEN

为什么在 Maven 文档中找不到有关注册表或令牌参数的任何信息?是否可以在没有任何 XML 配置文件的情况下将此文件上载到组织的注册表,而只使用 cli?

提前致谢。


答案 1

我在这方面取得了成功:

mvn deploy:deploy-file -Dfile=./[JAR].jar 
    -DpomFile=./pom.xml 
    -DrepositoryId=github 
    -Durl=https://maven.pkg.github.com/[OWNER]/[REPO] 
    -Dtoken=GH_TOKEN

以及一个设置.xml在我的 maven 主目录中:

<settings>
    <servers>
        <server>
        <id>github</id>
            <username>[GITHUB USERNAME]</username>
            <password>[GENERATED ACCESS TOKEN]</password>
        </server>
    </servers>
</settings>

在我的POM中:

...
<distributionManagement>
    <repository>
        <id>github</id>
        <name>GitHub Packages</name>
        <url>https://maven.pkg.github.com/[OWNER]/[REPO]</url>
    </repository>
</distributionManagement>
...

答案 2

为了解决存储库问题 - 由于我不希望将每个包发布到不同的存储库,因此我创建了一个名为存储库的存储库,并使用与其他两个答案相同的配置将所有其他存储库中的包发布到该存储库中。packages


推荐