Maven+SpringBoot打包可执行可依赖的jar包

笔者在工作中曾经遇到过这样的场景——一个Maven+SpringBoot的工程,既需要其生成的jar包能够直接运行,又可以作为其它工程的依赖包。下面就说一说解决这个场景的思路:

1、spring-boot-maven-plugin默认打包出来的jar是不可依赖的

如果你在SpringBoot工程中使用了spring-boot-maven-plugin的默认配置build,那么所生成的jar包虽然是可执行的,但却是不可被依赖的。

2、打两个jar包,一个用来直接执行,一个用作依赖包

通过修改pom.xml中spring-boot-maven-plugin的配置,可以让所在工程一次打包生成两个jar包,其中XXX.jar可作为其它工程的依赖,XXX-exec.jar可被执行。参考代码如下:

	<build>
		<plugins>
		<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration><!-- 指定该Main Class为全局的唯一入口 -->
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                    <mainClass>com.cmsz.rjzc.ComponentrepApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中 -->
                        </goals>
                        <!--可以生成不含依赖包的不可执行Jar包 -->
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
             <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
              </configuration>
           </plugin>
		</plugins>
	</build>




参考文:https://blog.csdn.net/guduyishuai/article/details/60968728



猜你喜欢

转载自blog.csdn.net/chenxy02/article/details/80189833