Maven导入jar包但是不能import引入
场景
自己提供的jar包导入到Maven,想让多个微服务使用,在引入本地jar后,在java类里 import 不成功,虽然能找到引用的类,但引用路径报红,提示如下:
“Cannot resolve symbol XXX”
解决方案
1、首先确定jar已经引入成功:
2、看 pom 文件中的 plugin,因为我创建项目自带了两个 plugin ,如果想要其它项目引用本项目,需要把原spring-boot-maven-plugin打包方式去掉用maven-compiler-plugin才行,我们参照下面试下:
原:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- TODO 加下面这个打包会出现其它项目引用问题 import 失败-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.crm.entity.EntityApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
去掉后再次打包,引入到相应微服务,import成功。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
注意:我们通过这种打包方式打包,是不能通过java -jar 启动的
java -jar crm_entity-0.0.1-SNAPSHOT.jar
crm_entity-0.0.1-SNAPSHOT.jar中没有主清单属性
那他们的区别在哪呢?为什么会出现这种情况?
参考:
maven-compiler-plugin 与spring-boot-maven-plugin 区别
https://blog.csdn.net/yangshengwei230612/article/details/125524471
-source 1.5 中不支持 diamond 运算符 解决思路
https://blog.csdn.net/bible_reader/article/details/105846894