默认打包生成的jar是不能直接运行的,因为带有main方法的类信息不会添加到mainfest中(打开jar文件中的META-INF/MAINFEST.MF文件,将无法看到Main-Class一行)。要生成可执行的jar文件,可修改pom.xml增加如下内容,以下两种方法均可
1.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.dianping.lx.App</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
2.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.dianping.lx.App</mainClass> </manifest> </archive> </configuration> </plugin>
执行mvn clean package即可生成可执行jar文件,执行如图:
以上是通过maven命令行方式生成,如果使用IntelliJ IDEA,可以方便的通过设置来生成,并且可以选择把依赖的jar包打包进jar文件或单独复制到lib目录,可参考http://bglmmz.iteye.com/blog/2058785