1. 程式人生 > >SpringBoot打包可執行可依賴的jar包

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>