首页 > 解决方案 > 在 bash shell 上使用 Maven 来自动化我的部署工作流程 (github-package-registry)

问题描述

我正在使用下面的命令行正确部署我的 JAR 文件,但是我想创建一个pom.xml文件并调用mvn deploy或类似的东西来将此包部署到 github 包。

这可能吗?我该怎么做?

mvn deploy:deploy-file -DgroupId=com.soma -DartifactId=my-module \
  -Dversion=1.0.0 -Dpackaging=jar -Dfile=my-module.jar \
  -DrepositoryId=github \
  -Durl=https://maven.pkg.github.com/$USER/my-artifacts

换句话说,我更喜欢使用 Maven 来自动化我的工作流程,而不是 bash shell。

我很感激任何帮助。

标签: javamavendeploymentgithub-package-registry

解决方案


下面的最小值pom.xml应该通过执行mvn deploy以下警告来工作:

  • 替换$USER为您的实际 GitHub 用户 ID

  • 把你的 JAR 放进去target/my-module-1.0.0-SNAPSHOT.jar

  • 确保您${user.home}/.m2/settings.xml有一个<server/>包含 GitHub 用户和令牌的条目

<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.soma</groupId>
  <artifactId>my-module</artifactId>
  <version>1.0.0</version>
  <distributionManagement>
    <downloadUrl>https://maven.pkg.github.com/$USER/${project.groupId}/</downloadUrl>
    <repository>
      <id>github</id>
      <url>https://maven.pkg.github.com/$USER/${project.groupId}/</url>
    </repository>
  </distributionManagement>
</project>

如果您已经为项目构建了 Maven,这应该很简单。

(在尝试部署多模块项目或快速重新部署工件时,我遇到了 GitHub 限制请求的问题。)


推荐阅读