- A+
所属分类:SpringBoot
现象:直接在idea里点运行是没问题的,但是打成可执行jar包在命令行里用java -jar来执行就会报错ClassNotFoundException。
看了下具体的找不到的类,发现是本地另一个common工程里的一个类。但是这个工程也打成了jar包在本地maven仓库啊,按理说应该是没问题的。后来百度了下springboot jar包的相关知识,发现jar包分两种,一种是可执行jar包,一种是不可执行jar包,只有不可执行jar包才能被引用其中的类。也就是说这里的common工程很可能也打成了可执行jar包,这样引用是找不到其中的类的。
找到问题所在后就简单了,修改common工程里的pom文件,注释掉
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>加上如下设置即可。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
