10

我正在尝试将尚未构建的 Maven 工件上传到我的组织的 GitHub 包注册表。为此,我正在使用 deploy: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 将此文件上传到组织的注册表吗?

提前致谢。

4

3 回答 3

1

我在这方面取得了成功:

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

我的 Maven 主目录中有一个 settings.xml:

<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>
...
于 2020-06-05T01:36:49.873 回答
0

为了解决 repo 问题 - 因为我不希望每个包都发布到不同的 repo,所以我创建了一个名为 repo 并将packages所有其他 repo 中的包发布到它,使用与其他两个答案相同的配置。

于 2021-01-28T08:08:24.270 回答
0

Url 也应该有一个存储库名称。

在我的一个项目中,我在 pom.xml 中有这个

<distributionManagement>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/stirante/lol-client-java-api</url>
    </repository>
</distributionManagement>
于 2019-11-28T16:52:56.030 回答