Github 操作将 java 工件推送到 github repo

Posted

技术标签:

【中文标题】Github 操作将 java 工件推送到 github repo【英文标题】:Github action push java artifact to github repo 【发布时间】:2020-11-17 00:33:40 【问题描述】:

我有一个 Github 存储库项目,它使用 GitHub 操作和一个用于构建 SpringBoot Java 项目的 docker 文件。 我想从 Github 存储库下载用于 GitHub 存储库的自定义工件的包,并且还能够将工件上传到它。

所以我点击链接Configuring Apache Maven for use with GitHub Packages,将该部分添加到 settings.xml 文件中:

  <activeProfiles>
    <activeProfile>github</activeProfile>
  </activeProfiles>

  <profiles>
    <profile>
      <id>github</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>github</id>
          <name>GitHub OWNER Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>USERNAME</username>
      <password>$GITHUB_TOKEN</password>
    </server>
  </servers>
</settings>

为了从 dockerfile 构建发布包,我在 pom.xml 中添加了以下内容:

 <distributionManagement>
    <repository>
        <id>github</id>
        <name>GitHub OWNER Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
    </repository>
</distributionManagement>

以下是我的dockerfile的内容:

FROM adoptopenjdk/maven-openjdk10 as build
WORKDIR /app
ADD pom.xml /app/pom.xml
ADD src /app/src    
ADD settings.xml /root/.m2/settings.xml
RUN ["mvn", "clean", "install", "deploy"]

是否可以从 dockerfile 部署到 Github 存储库?不知何故,部署部分似乎不起作用。我尝试了几次,但不确定我的部分有什么问题。 目前这是我在 docker build 中的错误:

无法传输元数据 com.chg.sa:demo-sa-java-service:1.0-SNAPSHOT/maven-metadata.xml 从/到 github (https://maven.pkg.github.com/OWNER/REPOSITORY):不是 授权 -> [帮助 1]

【问题讨论】:

您是要上传包还是工件?工件是工作流级别的,包是回购级别的。另外-您已将所有者和存储库值设置为您的存储库...对吗? 【参考方案1】:

我通过将 github 令牌作为构建 arg 传递并将所有者和 repo 名称切换为它们的值来使用 Dockerfile 构建进行推送。

【讨论】:

以上是关于Github 操作将 java 工件推送到 github repo的主要内容,如果未能解决你的问题,请参考以下文章

Git 提交将本地项目推送到github上

将本地已有仓库推送到github上新建的空仓库(git remote add ...)

使用 Git Bash/Terminal 将文件推送到 Github 存储库的特定目录

将文件推送到 Github/Gitlab 而不将其添加到 .git?

Git将一个项目同时从本地推送到GitHub和Gitee

无法将 master 推送到 Github -“origin”似乎不是 git 存储库/权限被拒绝