最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置

 更新時(shí)間:2022年02月21日 09:49:20   作者:kl  
這篇文章主要為大家介紹了多模塊maven項(xiàng)目deploy集成gitlab?ci自動(dòng)發(fā)版的配置流程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助

背景

多模塊的 maven 項(xiàng)目,抽象了通用的代碼邏輯作為單獨(dú)的 maven 模塊,這樣,不僅自己項(xiàng)目可以用,也可以提供依賴給其他項(xiàng)目用,那么這個(gè)時(shí)候需要將這個(gè)模塊上傳到 maven 私服,發(fā)布 maven 私服時(shí),release 版本不支持覆蓋,所以需要集成 ci 工具,給 maven 模塊自動(dòng)加上版本號(hào),并自動(dòng)完成 deploy 操作。本文方案依賴 maven 打包插件 flatten-maven-plugin,maven 版本要求大于等于 3.5.0

maven 配置

1、將 root 模塊的 version 變量化,如新增如下的版本號(hào) properties 參數(shù)

<modelVersion>4.0.0</modelVersion>
<groupId>com.github.kl</groupId>
<artifactId>demo</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<name>${project.artifactId}</name>
<modules>
    <module>core</module>
    <module>common</module>
    <module>admin</module>
</modules>
<properties>
    <revision>1.0</revision>
</properties>

2、子模塊依賴父模塊,依然使用 {revision} 占位符代替,依賴子模塊使用revision占位符代替,依賴子模塊使用{project.version},如:

<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>com.github.kl</groupId>
    <artifactId>demo</artifactId>
    <version>${revision}</version>
</parent>
<artifactId>core</artifactId>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<dependencies>
    <dependency>
        <groupId>com.github.kl</groupId>
        <artifactId>common</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

3、不納入自動(dòng)版本號(hào)的模塊,指定 version,同時(shí),這種模塊也不需要 deploy 到私服,配置提過,如:

<modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.github.kl</groupId>
        <artifactId>demo</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>admin</artifactId>
    <packaging>jar</packaging>
    <name>${project.artifactId}</name>
 
    <properties>
        <maven.deploy.skip>true</maven.deploy.skip>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>com.github.kl</groupId>
            <artifactId>common</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

4、root 模塊添加支持外部傳入版本號(hào)參數(shù)的構(gòu)建插件 flatten-maven-plugin,添加私服倉(cāng)庫(kù)地址

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <version>1.1.0</version>
            <configuration>
                <updatePomFile>true</updatePomFile>
                <flattenMode>resolveCiFriendliesOnly</flattenMode>
            </configuration>
            <executions>
                <execution>
                    <id>flatten</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>flatten</goal>
                    </goals>
                </execution>
                <execution>
                    <id>flatten.clean</id>
                    <phase>clean</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<distributionManagement>
    <repository>
        <id>repo</id>
        <url>https://nexus.dev.com/repository/maven-releases/</url>
    </repository>
</distributionManagement>

完成如上步驟后,deploy 時(shí),就可以通過傳入系統(tǒng)參數(shù)的方式,動(dòng)態(tài)指定版本號(hào),如:mvn  deploy -Drevision=xxx

gitlab ci 配置

1、在項(xiàng)目根目錄創(chuàng)建文件 .ci/settings.xml ,  內(nèi)容如下:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>repo</id>
      <username>${env.NEXUS_REPO_USERNAME}</username>
      <password>${env.NEXUS_REPO_PASSWORD}</password>
    </server>
  </servers>
</settings>

這個(gè)文件配置了 repo 的 maven 私服倉(cāng)庫(kù) server,因?yàn)檫@個(gè)配置跟隨項(xiàng)目的 git 走的,為了防止用戶名和密碼泄露,從環(huán)境變量中獲取(提前在 gitlab 里配置好)

2、在.gitlab-ci.yml 中新增 build-deploy 流程

build-deploy:
  stage: build-deploy
  image: maven:3.6.3-openjdk-8-slim
  only:
    - master
    - dev
  variables:
    MAVEN_OPTS: "-Xmx512m -Xms512m -Dmaven.repo.local=$CI_PROJECT_DIR/repository"
  script:
    - mvn -s .ci/settings.xml --batch-mode clean deploy -Drevision=1.0-${CI_PIPELINE_IID}
  artifacts:
    paths:
      - admin/target
    expire_in: 1 week
  cache:
    paths:
      - repository

以上就是多模塊maven的deploy集成gitlab ci自動(dòng)發(fā)版配置的詳細(xì)內(nèi)容,更多關(guān)于maven deploy集成gitlab ci配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • maven中no main manifest attribute的問題解決

    maven中no main manifest attribute的問題解決

    本文主要介紹了maven中no main manifest attribute的問題解決,這個(gè)錯(cuò)誤通常意味著Spring Boot應(yīng)用在啟動(dòng)時(shí)遇到了問題,下面就來具體介紹一下,感興趣的可以了解一下
    2024-08-08
  • Java JDBC自定義封裝工具類的步驟和完整代碼

    Java JDBC自定義封裝工具類的步驟和完整代碼

    這篇文章主要給大家介紹了關(guān)于Java JDBC自定義封裝工具類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • idea SpringBoot+Gradle環(huán)境配置到項(xiàng)目打包

    idea SpringBoot+Gradle環(huán)境配置到項(xiàng)目打包

    Gradle是一個(gè)基于Java應(yīng)用的項(xiàng)目自動(dòng)化構(gòu)建工具,本文介紹了在IDEA中創(chuàng)建Spring Boot Gradle項(xiàng)目,項(xiàng)目配置包括init.gradle和settings.gradle,感興趣的可以了解一下
    2024-11-11
  • hbase訪問方式之java api

    hbase訪問方式之java api

    這篇文章主要介紹了hbase訪問方式之java api,需要的朋友可以參考下
    2017-09-09
  • Java中數(shù)組的一些常見操作和技巧分析

    Java中數(shù)組的一些常見操作和技巧分析

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的一些常見操作和技巧分析的相關(guān)資料,數(shù)組(Array)是Java中的一種引用數(shù)據(jù)類型,是多個(gè)相同類型數(shù)據(jù)一定順序排列的集合,并使用一個(gè)名字命名,并通過編號(hào)的方式對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)一管理,需要的朋友可以參考下
    2023-08-08
  • 聊聊Redis二進(jìn)制數(shù)組Bitmap

    聊聊Redis二進(jìn)制數(shù)組Bitmap

    這篇文章主要介紹了Redis二進(jìn)制數(shù)組Bitmap,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類詳解

    Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類詳解

    這篇文章主要介紹了Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,需要的朋友可以參考下,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • java反射之獲取類的信息方法(推薦)

    java反射之獲取類的信息方法(推薦)

    下面小編就為大家?guī)硪黄猨ava反射之獲取類的信息方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • java ConcurrentHashMap分段加鎖提高并發(fā)效率

    java ConcurrentHashMap分段加鎖提高并發(fā)效率

    這篇文章主要為大家介紹了java ConcurrentHashMap分段加鎖提高并發(fā)效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • idea注入mapper報(bào)錯(cuò)報(bào)紅的幾種解決方案

    idea注入mapper報(bào)錯(cuò)報(bào)紅的幾種解決方案

    相信大家在使用idea的時(shí)候一定會(huì)遇到這樣的問題,就是在service里注入mapper的時(shí)候,明明代碼沒有問題,也可以運(yùn)行,但是idea它就是給你報(bào)個(gè)錯(cuò),有個(gè)紅色的波浪線在下面,所以本文將給大家介紹了idea注入mapper報(bào)錯(cuò)報(bào)紅的幾種解決方案,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

资兴市| 平舆县| 军事| 张家川| 卓资县| 大渡口区| 太湖县| 铜鼓县| 千阳县| 新沂市| 池州市| 吉安县| 延庆县| 那曲县| 平舆县| 米泉市| 荣成市| 林州市| 靖宇县| 商水县| 游戏| 西充县| 舒兰市| 横山县| 济源市| 宁陵县| 南华县| 隆尧县| 和龙市| 遂溪县| 云梦县| 本溪| 慈溪市| 九江市| 开封县| 建始县| 都江堰市| 禄劝| 齐齐哈尔市| 扬中市| 葵青区|