SpringBoot 之assembly自定义打包

46 篇文章 0 订阅
1 篇文章 0 订阅

SpringBoot项目使用assembly.xml进行打包部署

前言:

     对通常的springboot项目,一般我们都是采用的jar的方式进行启动配置相应的参数。但是对于一些web以及配置型项目操作不方便。

     这里我们适用assembly以及自定义脚本进行项目部署:

 assembly.xml:

<assembly 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/xsd/assembly-1.0.0.xsd">
    <id>package</id>
	<!--打包方式-->
    <formats>
        <format>tar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
	<!--扫描文件的列表-->   
   <fileSets>
		<!--springboot基础配置-->
        <fileSet>  
            <includes>  
                <include>*.properties</include>  
                <include>**/*.xml</include>  
            </includes>
            <excludes>
            	<exclude>application.properties</exclude>
            	<exclude>config/*.properties</exclude>
            </excludes>
            <outputDirectory>${file.separator}resources</outputDirectory>  
            <directory>src/main/resources</directory>   
        </fileSet> 
        <fileSet>  
            <includes>  
                <include>application.properties</include>  
            	<include>config/*.properties</include>
            </includes>
            <outputDirectory>${file.separator}resources</outputDirectory>  
            <directory>src/${env}/resources</directory>   
        </fileSet>  
		<!--启动脚本配置(需要执行dos2unix)-->
        <fileSet>  
            <outputDirectory>${file.separator}</outputDirectory>  
            <directory>src/script</directory>  
        </fileSet>  
		<!--lib-->
        <fileSet>  
            <outputDirectory>${file.separator}lib</outputDirectory>  
            <directory>lib</directory>  
        </fileSet>  
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

需要在我们的maven项目中加入plugin:

           <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
					<!--打包名称-->
                    <finalName>projectName</finalName>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                    <appendAssemblyId>false</appendAssemblyId>
                    <archiveBaseDirectory>${project.basedir}</archiveBaseDirectory>
                </configuration>
            </plugin>

启动执行的script脚本:

bak.sh

tar -cvf ../projectName/projectName.tar`date +%Y%m%d%H%M%s` *

ps.sh --查看进程

APP_HOME=`pwd`
echo "pid:`cat app.pid`"
ps -ef|grep $APP_HOME

run.sh --启动

/*springboot main方法启动类*/
APP_MAINCLASS=com.projectName.Application

APP_HOME=`pwd`

CLASSPATH=$APP_HOME/resources
for i in "$APP_HOME"/lib/*.jar; do
  CLASSPATH="$CLASSPATH":"$i"
done
java -Djava.awt.headless=true  -classpath $CLASSPATH $APP_MAINCLASS $* > /data/Logs/projectName/app.log &

echo $! > app.pid

stop.sh --停止进程

kill `cat app.pid`

tail.sh --查看正在运行的日志

APP_HOME=/data/Logs/projectName
if [ -n "$1" ]
then
  tail -f $APP_HOME/$1.log
else
  tail -f $APP_HOME/app.log
fi

 

以上是整个打包操作的相关的配置。对打包的tar解压执行sh脚本时可能会出现脚本无法执行需要使用dos2uninx进行转换。

如果未安装dos2unix会出现

[root@localhost dhing]# dos2unix 
bash: dos2unix: 未找到命令… 

解决方案:

[root@localhost user]# yum install dos2unix 

 

如此就是项目自定义打包的相关配置~~~~


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java Spring Boot中,可以使用Maven的插件来配置和构建可执行的JAR文件或WAR文件。其中,使用Maven的Assembly插件可以帮助我们进行更灵活的配置和构建。 首先,需要在项目的pom.xml文件中添加Assembly插件的依赖: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.Application</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 上述配置中,我们指定了使用`jar-with-dependencies`描述符,这将会将所有依赖的JAR包打包到生成的可执行JAR文件中。同时,我们也指定了主类的名称。 接下来,可以使用以下命令来构建可执行的JAR文件: ``` mvn clean package ``` 构建完成后,可以在target目录下找到生成的可执行JAR文件。 除了使用Assembly插件,还可以使用Spring Boot的内置插件来构建可执行的JAR文件。在pom.xml文件中添加以下配置: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 然后,可以使用以下命令来构建可执行的JAR文件: ``` mvn clean package spring-boot:repackage ``` 这样就可以得到与使用Assembly插件相同的效果。 需要注意的是,以上配置适用于使用Maven构建项目的情况。如果你使用的是Gradle构建工具,可以使用相应的插件来配置和构建可执行的JAR文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值