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 就可以运行主类了