目录
一、问题
二、错误解决思路
三、真实解决方案
总结
一、问题
ruoyi前后端分离框架,项目中需要引入本地的jar包,但maven打包时却打不进去包。
问题代码
system模块pom.xml文件引用
<dependency>
<groupId>com.usign</groupId>
<artifactId>usign-util</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/usign-util-1.1.jar</systemPath>
</dependency>
此时,本地启动调试都是正常的,但是maven package时,本地的jar包并没有打进去。
二、错误解决思路
system的pom.xml加入了以下代码
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArguments>
<extdirs>${project.basedir}/lib/usign-util-1.1.jar</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
maven package时,本地的jar包也没有打进去,网上的解决办法是没用的,抛出 should not point at files within the project directory … 警告。
百度吧,大家的解决方法是这样的
移除本地包依赖中的 和
<dependency>
<groupId>ppts.model</groupId>
<artifactId>ppts-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
通过 maven-install-plugin 插件对 jar 包进行安装
clean 表示该 jar 包会在执行 clean 操作时引入
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-ppts-model</id>
<phase>clean</phase>
<configuration>
<file>${basedir}/../lib/ppts-model-1.0-SNAPSHOT.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>ppts.model</groupId>
<artifactId>ppts-model</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
请大家看清楚,这代码肯定是有问题的,首先移除本地包依赖中的 和 ,本地引用肯定会报错。。。。。太坑了。
三、真实解决方案
1.system模块下建lib把jar文件放进去
2.system模块pom.xml文件引用
<dependency>
<groupId>com.usign</groupId>
<artifactId>usign-util</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/usign-util-1.1.jar</systemPath>
</dependency>
3.admin 模块pom.xml build configuration标签下加上:
true
完整代码:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>