自学内容网 自学内容网

Linux使用nexus配置流水线

1、修改配置文件

修改maven的setting.xml文件

两个server的id对应了配置的两个hosted仓库名称

<server>
    <id>dz13_RELEASE</id>
    <username>admin</username>
    <password>123456</password>
</server>
<server>
    <id>dz13_SNAPSHOT</id>
    <username>admin</username>
    <password>123456</password>
</server>

<!-- 删除阿里云的镜像,用我们自己的nexus地址 -->
<mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://192.168.3.43:8081/repository/dz13/</url>
</mirror>

<!-- 配置一套环境 -->
<profile>
    <id>nexus</id>
    <repositories>
        <repository>
            <id>central</id>
            <url>http://192.168.3.43:8081/repository/dz13/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>http://192.168.3.43:8081/repository/dz13/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>

<!-- 启用刚才配置的一套环境 -->
<activeProfiles>
     <activeProfile>nexus</activeProfile>  
</activeProfiles>

2、maven仓库jar类型

1、快照版

快照版jar是正在开发中的,没有经过大量测试的,是临时用的jar。每次提交jar到nexus会生成一个新的快照,而版本号不会改变,引入依赖时会自动引入最新的快照版本。

2、发布版

经过大量测试,已经完成全流程的jar。这个jar是稳定的,放心引用的。

3、本地开发环境配置

1、项目的pom文件配置

<!--私服配置-->
<distributionManagement>
    <repository>
        <id>my-neuse-releases</id>
        <name>Nexus Release Repository</name>
        <url>http://192.168.3.43:8081/repository/IntelligentNetwork/</url>
    </repository>
    <snapshotRepository>
        <id>my_repo_snapshot</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://192.168.3.43:8081/repository/IntelligentNetwork/</url>
    </snapshotRepository>
</distributionManagement>

2、修改当前工作空间下的maven引用

修改本地仓库maven的setting文件,配置方式和虚拟机中相同。【虚拟机中的setting文件修改了啥,本地仓库的setting文件也要改啥】

如果不修改本地仓库的配置文件,连接不到自己的私服,无法拉取私服中自己上传的jar。

根据路径找的setting文件后,进行修改。

3、修改本地项目打包插件,同时git提交到gitee仓库里:

#更换一下项目中的打包插件,同时 上传到gitee仓库里。
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

4、Jenkins上传jar到nexus

1、流水线代码

node {
    stage('pull code'){
        git branch: 'master', credentialsId: '9a19cd80-bb02-4e8b-b126-f023bdebea7b', url: 'https://gitee.com/wztsl/dz12-demo01.git'
    }
    stage('compile'){
        dir('/var/lib/jenkins/workspace/jar_demo01'){
            sh 'mvn clean install'
        }
    }
    stage('upload jar'){
        sh "mvn deploy:deploy-file \
        -DgroupId=org.jsoft \
        -DartifactId=demo-helloworld \
        -Dversion=0.0.1-SNAPSHOT \
        -Dpackaging=jar \
        -Dfile=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT.jar \
        -Dsources=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT-sources.jar \
        -DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/org/jsoft/demo-helloworld/0.0.1-SNAPSHOT/demo-helloworld-0.0.1-SNAPSHOT.pom \
        -DrepositoryId=dz12_SNAPSHOT \
        -Durl=http://192.168.1.173:8081/repository/dz12_SNAPSHOT/"
    }
}

第一阶段:从git下载代码

    stage('pull code'){
        git branch: 'master', credentialsId: '9a19cd80-bb02-4e8b-b126-f023bdebea7b', url: 'https://gitee.com/wztsl/dz12-demo01.git'
    }

第二阶段:maven打包

由于最开始用来阿里云镜像,导致和私服产生了冲突,如果不配置私服时可以打包成功,配置私服就失败,可以把本地仓库中的jar删除,重新在私服下拉取依赖。

 stage('compile'){
        dir('/var/lib/jenkins/workspace/jar_demo01'){
            sh 'mvn clean install'
        }
    }

#更换一下项目中的打包插件,同时 上传到gitee仓库里。
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

第三阶段:上传nexus

注意:Dfile和Dsources不能用本地仓库中的,要用代码下target下的jar。如果用本地仓库会导致自己替换自己的问题,出现报错,无法上传。

    stage('upload jar'){
        sh "mvn deploy:deploy-file \
        -DgroupId=org.jsoft \
        -DartifactId=demo-helloworld \
        -Dversion=0.0.1-SNAPSHOT \
        -Dpackaging=jar \
        -Dfile=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT.jar \
        -Dsources=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT-sources.jar \
        -DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/org/jsoft/demo-helloworld/0.0.1-SNAPSHOT/demo-helloworld-0.0.1-SNAPSHOT.pom \
        -DrepositoryId=dz12_SNAPSHOT \
        -Durl=http://192.168.1.173:8081/repository/dz12_SNAPSHOT/"
    }

配置共有9项,4+3+2

4个工程自己的配置,这四个对应了pom.xml文件中的配置
-DgroupId
-DartifactId
-Dversion
-Dpackaging(是包的类型,基本都会配置成jar,少数会配置成pom。jar就是一个依赖的jar包,pom是做依赖传递的)
3个要上传的文件
-Dfile:jar包
-Dsources:源码jar包
-DpomFile:.pom文件,做依赖传递
2个私服仓库配置
-DrepositoryId:仓库名称
-Durl:仓库地址


原文地址:https://blog.csdn.net/wang_san_sui_/article/details/142449066

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!