SpringBoot分离打包:不包含依赖文件,显式剔除配置文件

在properties中定义依赖jar和配置文件的输出路径

<output.dependence.file.path>lib/</output.dependence.file.path>
<output.resource.file.path>resources/</output.resource.file.path>

定义build ,此处为完整的build配置

共分为两部分:分离打包和跳过单元测试

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
          <!-- 打JAR包,不包含依赖文件;显式剔除配置文件 -->
	      <plugin>
	         <groupId>org.apache.maven.plugins</groupId>
	         <artifactId>maven-jar-plugin</artifactId>
	         <configuration>
	            <!-- 剔除配置文件 -->
	            <excludes>
	               <exclude>*.properties</exclude>
	               <exclude>*.yml</exclude>
                   <exclude>*.xml</exclude>
                   <exclude>*.txt</exclude>
	            </excludes>
	            <archive>
	               <manifest>
	                  <addClasspath>true</addClasspath>
	                  <!-- MANIFEST.MF 中 Class-Path 各个依赖加入前缀 -->
	                  <!--lib文件夹内容,需要 maven-dependency-plugin插件补充-->
	                  <classpathPrefix>${output.dependence.file.path}</classpathPrefix>
	                  <!-- jar包不包含唯一版本标识 -->
	                  <useUniqueVersions>false</useUniqueVersions>
	                  <!--指定入口类 -->
	                  <mainClass>com.bonc.ServerApplication</mainClass>
	               </manifest>
	               <manifestEntries>
	                  <!--MANIFEST.MF 中 Class-Path 加入自定义路径,多个路径用空格隔开 -->
	                  <!--此处resources文件夹的内容,需要maven-resources-plugin插件补充上-->
	                  <Class-Path>./${output.resource.file.path}</Class-Path>
	               </manifestEntries>
	            </archive>
	            <outputDirectory>${project.build.directory}</outputDirectory>
	         </configuration>
	      </plugin>
	
	      <!-- 复制依赖的jar包到指定的文件夹里 -->
	      <plugin>
	         <groupId>org.apache.maven.plugins</groupId>
	         <artifactId>maven-dependency-plugin</artifactId>
	         <executions>
	            <execution>
	               <id>copy-dependencies</id>
	               <phase>package</phase>
	               <goals>
	                  <goal>copy-dependencies</goal>
	               </goals>
	               <configuration>
	                  <outputDirectory>${project.build.directory}/${output.dependence.file.path}</outputDirectory>
	               </configuration>
	            </execution>
	         </executions>
	      </plugin>
	
	      <!-- 用于复制指定的文件 -->
	      <plugin>
	         <artifactId>maven-resources-plugin</artifactId>
	         <executions>
	            <!-- 复制配置文件 -->
	            <execution>
	               <id>copy-resources</id>
	               <phase>package</phase>
	               <goals>
	                  <goal>copy-resources</goal>
	               </goals>
	               <configuration>
	                  <resources>
	                     <resource>
	                        <directory>src/main/resources</directory>
	                        <includes>
	                           <exclude>*.properties</exclude>
				               <exclude>*.yml</exclude>
			                   <exclude>*.xml</exclude>
			                   <exclude>*.txt</exclude>
	                        </includes>
	                     </resource>
	                  </resources>
	                  <outputDirectory>${project.build.directory}/${output.resource.file.path}</outputDirectory>
	               </configuration>
	            </execution>
	         </executions>
	      </plugin>
	
	      <!-- spring-boot-maven-plugin可以不使用,可当做一般jar包来运行 -->
	      <!-- spring-boot-maven-plugin可统一包内文件结构-->
	      <plugin>
	         <groupId>org.springframework.boot</groupId>
	         <artifactId>spring-boot-maven-plugin</artifactId>
	         <configuration>
	         	<classifier>exec</classifier>
	            <!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖 -->
	            <includes>
	               <include>
	                  <groupId>null</groupId>
	                  <artifactId>null</artifactId>
	               </include>
	            </includes>
	            <outputDirectory>${project.build.directory}</outputDirectory>
	         </configuration>
	         <executions>
	            <execution>
	               <goals>
	                  <goal>repackage</goal>
	               </goals>
	               <configuration>
	                  <!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
	                  <!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar -->
	                  <!--<classifier>run</classifier> -->
	               </configuration>
	            </execution>
	         </executions>
	      </plugin>
            <!-- 跳过单元测试 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值