Springboot中引入本地jar包,并通过maven把项目打成可执行jar包

       最近把以往的老项目用SpringBoot进行了重构,老项目中有部分本地依赖包不是放在maven库里的,是本地开发直接引入,需要在mvn package的时候把本地依赖jar也打进可执行包中。

这种通用问题,在网上找了一圈却没发现什么好的解决办法,表示很惊讶。特此把解决办法记录共享下。

1.网上较多的推荐方法:在pom文件定义依赖来一一对应本地依赖的相关jar包

<dependency>
            <groupId>com.aliyun.alicom</groupId>
            <artifactId>alicom-mns-receive-sdk</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/alicom-mns-receive-sdk-1.0.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.aliyun.mns</groupId>
            <artifactId>aliyun-sdk-mns</artifactId>
            <version>1.1.8</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/aliyun-sdk-mns-1.1.8.jar</systemPath>
        </dependency>
</dependency>

参考文章:https://www.cnblogs.com/liukunjava/p/9577768.html

但是当本地jar包个数较多的时候,一个个的添加pom依赖,显得有点儿麻烦

2.添加maven插件(亲试可行)

 在resource目录下新建一个目录来存放本地依赖jar包

然后在pom文件中添加

maven-compiler-plugin

插件,并设置本地依赖文件的路径

<build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <inherited>true</inherited>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>UTF-8</encoding>
          <compilerArguments>
            <extdirs>src/main/resources/lib/cdh</extdirs>
          </compilerArguments>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources/lib/cdh</directory>
        <targetPath>BOOT-INF/lib/</targetPath>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>**/*.jar</exclude>
        </excludes>
        <targetPath>BOOT-INF/classes/</targetPath>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>**/*.jar</exclude>
        </excludes>
        <targetPath>./</targetPath>
      </resource>
    </resources>
  </build>

这样当执行mvn package时就会引入设定目录下的所有本地依赖包,通过idea直接跑或者rebuild都是没问题的。

猜你喜欢

转载自blog.csdn.net/u012480148/article/details/84872132