Maven在默认情况,打包成的jar包是不可执行的,查看jar包是否可运行:打开jar包下的META-INF/MANIFEST.MF,里面若有Main-class: xxx的话就说明示可执行。而maven默认情况下打包完后是不含这一项的。
要让maven打包成可执行的jar:在pom.xml的project元素下新增下面配置(若已有plugins节点,则直接把plugin节点置于其下即可)
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>这里写主类完整路径</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
改完后再运行mvn clean package后,会看到jar包下META-INF/MANIFEST.MF会有Main-class这一行,然后java -jar jar-name 就可以运行主类了