默认打包生成的jar 包是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(可打开 jar包中的 META-INF文件) 将无法看到 Main-Class 一行)。为了生成可执行的 jar 文件, maven-shade-plugin,配置该插件如下,
(注意位置:plugin 元素在 pom中的相对位置在 <project> <build> <plugins> 下面)
<build>
<plugins>
<plugin>
<groupId>org.a;/groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.a; >
<mainClass>com.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
项目在打包时,就会将该信息放到MANIFEST中,现在执行mvn clean install 就看到jar 中的 META-INF ,有这么一行:
Main-Cla 可以在 target下执行 java -jar a.jar