使用Maven打包可执行jar包碰到的一个问题
程序员文章站
2022-04-28 22:53:38
...
最近公司有一个项目,有一个小模块的demo写好了以后需要打成jar包运行,因为我接手开始写时,团队大佬已经把项目大体写好了,我只需要完善业务逻辑即可。写完后准备打成jar包部署,然后打完jar包后放在服务器上运行时一直报类找不到,看了一下pom.xml
<pluginManagement> </pluginManagement>``
发现插件最外层是一对这个注解,不是plugins,百度一下这个注解的含义,发现这个还是和plugins有区别的
plugins 和 pluginManagement 的区别,plugins 下的 plugin 是真实使用的,而 pluginManagement 下的 plugins 下的 plugin 则仅仅是一种声明,子项目中可以对 pluginManagement 下的 plugin 进行信息的选择、继承、覆盖等。
所以我猜测可能是这个注解导致我配置的maven-shade-plugin插件并没有产生作用,然后将其注释掉后,再次打包,这次打包的jar包就可以直接运行了
附上maven-shade-plugin插件配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!--可执行的main方法-->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.xbsafe.smarthome.PlatformApplication</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>