springboot+maven项目jenkins多环境打包设置

使用maven-resources-plugin配置不同环境,进行多环境打包

pom文件中引入maven-resources-plugin

<build>
	<plugins>
	   <!-- 指定JDK编译版本-->
	    <plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-compiler-plugin</artifactId>
	        <configuration>
	            <source>1.8</source>
	            <target>1.8</target>
	            <encoding>UTF-8</encoding>
	        </configuration>
	    </plugin>
	    <!-- 打包跳过测试 -->
	    <plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-surefire-plugin</artifactId>
	        <configuration>
	            <skipTests>true</skipTests>
	        </configuration>
	    </plugin>
	    <!-- 避免font文件的二进制文件格式压缩破坏 -->
	    <plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-resources-plugin</artifactId>
	        <configuration>
	            <nonFilteredFileExtensions>
	                <nonFilteredFileExtension>woff</nonFilteredFileExtension>
	                <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
	                <nonFilteredFileExtension>eot</nonFilteredFileExtension>
	                <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
	                <nonFilteredFileExtension>svg</nonFilteredFileExtension>
	            </nonFilteredFileExtensions>
	            <!-- 覆盖原有文件 -->
	            <overwrite>true</overwrite>
	            <!-- 指定相对url的方式指定outputDirectory -->
	            <outputDirectory>target/classes</outputDirectory>
	        </configuration>
	    </plugin>
	</plugins>
</build>
  1. 在项目src/main/resources目录下,按照环境名称建立配置文件目录
    在这里插入图片描述
    pom文件中加入相关设置
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
            </properties>
        </profile>
    </profiles>

指定resources

<build>
	<resources>
       <resource>
             <directory>src/main/resources/${env}</directory>
             <filtering>true</filtering>
         </resource>
         <resource>
             <directory>src/main/java</directory>
             <includes>
                 <include>**/*.xml</include>
                 <include>**/*.json</include>
                 <include>**/*.ftl</include>
                 <include>**/*.pem</include>
             </includes>
         </resource>
         <resource>
             <directory>src/main/resources</directory>
             <includes>
                 <include>**/*.xml</include>
                 <include>**/*.txt</include>
                 <include>*.xml</include>
                 <include>*.txt</include>
             </includes>
             <!-- 此处排除这些包目的是只保留打包环境的配置文件 -->
             <excludes>
                 <exclude>dev/*</exclude>
                 <exclude>test/*</exclude>
                 <exclude>prod/*</exclude>
             </excludes>
         </resource>
     </resources>
 </build>

到此,maven配置以及项目设置完成,可执行maven命令进行打包

打包命令
mvn clean package
mvn clean package -Pdev
mvn clean package -Ptest
mvn clean package -Pprod
执行命令,指定-P参数,启用指定的profile。

在jenkins中新建一个maven项目任务
在这里插入图片描述
进入任务详情,配置任务详情。
填写源码来源
在这里插入图片描述
设置build信息
在这里插入图片描述
构建成功后的脚本信息
在这里插入图片描述
shell脚本内容,根据项目实际情况修改

#!/bin/sh

echo "开始执行shell脚本"

# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe

# 指定最后编译好的jar的存放位置
JAR_PATH=/opt/workspace/appserver

# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH

# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/home/wenbo/jenkins/workspace/testProject/target

# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH

# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)(appserver-0.0.4.jar需要替换成你自己的)
JENKINS_JAR_NAME=appserver-0.0.4.jar

# 获取该项目的进程号,用于重新部署项目前杀死进程(appserver需要替换成你自己的)
process_id=$(ps -ef | grep appserver | grep -v "grep" | awk '{print $2}')

# 如果该项目正在运行,就杀死项目进程
if [[ ! -z "$process_id" ]]
then 
	echo "停止服务"
    kill -9 $process_id
else 
	echo "服务未启动"
fi

# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}

# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH

# 进入到存放项目jar的位置
cd ${JAR_PATH}

# 后台启动项目,并且将控制台日志输出到nohup.out中
nohup java -jar ${JENKINS_JAR_NAME} --server.port=9000 -Dfile.encoding=UTF-8 >nohup.out &

echo "shell脚本执行完毕"

参考连接 https://www.cnblogs.com/grasp/p/12118684.html
参考连接 https://www.haowenbo.com/articles/2019/07/24/1563964257491.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值