搞这个工作用过一些命令
java -jar xxx.jar 执行jar包
jar xvf xxx.jar 把jar包解压
jar cvf xxx.jar xxx1.jar xxx2.jar 合并jar包,但是MF文件合并好像有点问题
maven打包的时候,不会把依赖包也打进去,而普通的项目,在路径下都有很多jar去可以直接调用,而这种可执行jar,就像exe文件,属于直接执行,所以需要把依赖包和项目本身打到一个jar包中,同时配置Main-Class
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.rabbitmqMesTools.RabbitmqMesTools</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
如果用下面这个配置的话,会把依赖的包同时复制到target路径下,即项目本身一个jar,各个依赖包很多jar,当然在target目录下执行java -jar xxx.jar也能执行,因为依赖包在同一个路径下,贴出来供参考
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix></classpathPrefix>
<mainClass>com.rabbitmqMesTools.RabbitmqMesTools</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>