使用CI/CD工具Github Action发布jar到Maven中央仓库的详细介绍

当我们开发Java应用程序时,经常需要将已编译的代码打包成可执行的jar文件,并将其发布到Maven中央仓库。为了简化这一过程,我们可以使用持续集成和交付(CI/CD)工具如Github Action,以自动化和简化这些步骤。以下是使用Github Action发布jar文件到Maven中央仓库的详细介绍:

实现过程

1.创建Maven项目

首先,创建一个Maven项目并编写应用程序的代码。确保在pom.xml文件中定义了应用程序的依赖项和构建配置,以及正确的maven配置以发布jar到中央仓库。

2.创建Github Action工作流程

在github仓库的根目录下创建 .github/workflows/maven-publish.yml 文件,用于定义CI/CD工作流程,实现将打包好的jar文件自动部署到Maven 中央仓库。

以下是一个基本示例:

name: Maven Publish

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: "11"
    - name: Build with Maven
      run: mvn -B clean package -DskipTests
    - name: Publish to Maven
      run: mvn -B deploy
      env:
        GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
        MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
        MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}

3.配置Maven credentials

在前面的示例中,MAVEN_USERNAMEMAVEN_PASSWORD 是 Github Secrets,我们需要在Github repository的Settings->Secrets里面添加这些Secrets,并将其用于Maven身份验证。

4.构建并发布代码

执行一次代码提交(commit),Github Action会自动build应用程序,打包应用程序并将其发布到Maven中央仓库中。

5.验证是否发布到中央仓库

登录到 Maven Central 的网站并搜索你的组织和项目名称,查看是否已成功将Jar文件发布到 Maven 中央仓库中。

示例1

下面是一个更详细的示例,包括构建Docker容器和发布到Heroku的步骤。这个示例假设你已经用Spring Boot编写了一个Web应用程序,并使用了Maven作为构建工具。

name: Build and Deploy

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: "11"

    - name: Build with Maven
      run: mvn clean install -DskipTests

    - name: Build Docker image
      uses: docker/build-push-action@v1
      with:
        context: .
        push: true
        tags: username/image-name:latest

    - name: Deploy to Heroku
      uses: jontewks/puppeteer-action@2.0.5
      with:
        args: deploy heroku-app-name image-name
      env:
        HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

  publish:
    needs: build
    runs-on: ubuntu-latest

    steps:
    - name: Set up Maven
      uses: sungjk/maven-setup-action@v1.1.4

    - name: Deploy to Maven Central
      run: mvn deploy -DskipTests
      env:
        GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
        MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
        MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}

示例2

另一个示例,假设你已经用Gradle编写了Java应用程序。这个示例演示了如何在Github Actions中执行Gradle build并将构建的jar文件发布到Maven仓库中。

name: Build and Deploy

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: "11"

    - name: Build with Gradle
      run: ./gradlew clean build -x test

  publish:
    needs: build
    runs-on: ubuntu-latest

    steps:
    - name: Set up Maven
      uses: sungjk/maven-setup-action@v1.1.4

    - name: Deploy to Maven Central
      run: ./gradlew publish
      env:
        GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
        MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
        MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}

以上是关于使用GitHUb Action发布jar到Maven中央仓库的攻略及两个示例说明,希望可以帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用CI/CD工具Github Action发布jar到Maven中央仓库的详细介绍 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Python爬虫使用脚本登录Github并查看信息

    讲解”Python爬虫使用脚本登录Github并查看信息”的攻略要分为以下几个步骤: 登录Github账号获取Cookie 使用Cookie请求Github登录后的页面,获取个人信息 整合到脚本中,实现自动登录并获取个人信息 下面分别详细介绍每个步骤。 登录Github账号获取Cookie 我们可以在Chrome浏览器中登录Github并使用F12打开开发者…

    GitHub 2023年5月16日
    00
  • SpringBoot之HandlerInterceptor拦截器的使用详解

    下面我将为你详细讲解“SpringBoot之HandlerInterceptor拦截器的使用详解”的完整攻略。 一、HandlerInterceptor简介 HandlerInterceptor 是 SpringMVC 拦截器,主要作用是拦截请求并获取请求相关的信息,对请求进行拦截和处理,对响应进行后处理和响应处理。 既然是一个拦截器,那必然就是针对请求进行…

    GitHub 2023年5月16日
    00
  • Kotlin与Java相互调用的完整实例

    下面详细讲解“Kotlin与Java相互调用的完整实例”的完整攻略,包括Kotlin调用Java和Java调用Kotlin的示例。 Kotlin 调用 Java 示例一:Java 中的类 首先,我们需要在 Java 中创建一个类,这里我们创建一个 Person 类: public class Person { private String mName; pr…

    GitHub 2023年5月16日
    00
  • Android实现倾斜角标样式

    下面是详细的Android实现倾斜角标样式的攻略。 一、倾斜角标样式实现原理 倾斜角标样式是通过自定义View来实现的,具体实现过程如下: 画出指定大小的带圆角的矩形背景。 根据角标大小,以矩形的右上角为起点,绘制三角形。 由于三角形是等腰三角形,需要计算出三角形的底边长和斜边长。 将绘制好的背景和三角形按指定的位置进行组合。 最后将组合后的图形绘制到Vie…

    GitHub 2023年5月16日
    00
  • 微信小程序生成二维码的示例代码

    当你在开发微信小程序时,需要生成二维码来引导用户扫描进入小程序,以下是生成二维码的完整攻略: 步骤一:导入Qrcode.js 导入Qrcode.js可以帮助你轻松生成二维码,你可以在github上下载该库https://github.com/davidshimjs/qrcodejs。 步骤二:生成二维码 示例一: <!–在HTML中新建一个容器,用于…

    GitHub 2023年5月16日
    00
  • Git安装和使用图文教程(分享)

    下面是详细的“Git安装和使用图文教程(分享)”攻略和示例说明。 Git安装和使用图文教程(分享) 1. 安装Git Git是一款非常流行的分布式版本控制系统,它能够帮助我们更好地管理和协作项目。以下是在Windows系统上安装Git的步骤。 1.1 下载Git安装程序 首先,我们需要下载Git的安装程序。可以从Git官网下载相应的版本,也可以从GitHub…

    GitHub 2023年5月16日
    00
  • Python使用Pyqt5实现简易浏览器(最新版本测试过)

    下面我来为您详细讲解“Python使用Pyqt5实现简易浏览器(最新版本测试过)”的完整攻略: 1. 安装PyQt5 PyQt5是Python中的GUI编程库,需要先安装。可以在终端中输入以下命令安装: pip install pyqt5 2. 搭建界面 使用QtDesigner软件创建一个窗口,然后将其保存为.ui文件,再使用以下代码将其转化为Python…

    GitHub 2023年5月16日
    00
  • 官网项目Jetpack Startup库学习

    官网项目Jetpack Startup库学习 简介 Jetpack Startup库是Android Jetpack中的一个库,它可以用来简化应用程序的启动流程,这对于开发者来说,可以提高开发效率和用户体验。本攻略将彻底讲解如何在Android Studio中使用Jetpack Startup库。 步骤 在项目的build.gradle中,添加以下依赖: d…

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部