Maven 生成可执行的jar包
maven 默认打包生成的 jar 包是不能够直接运行的,因为带有 main 方法的类信息不会添加到 manifest 中,即打开 jar 文件中的 META-INF/MANIFEST.MF 文件,将无法看到 Main-Class 一行。
为了生成可执行的 jar 文件,需要借助 maven-shade-plugin 插件,配置该插件如下
在项目 pom.xml 文件的 <project> <build> <plugins> 下面新建元素 <plugin>
在 <mainClass> 元素中指明 main class 这样项目在打包是会将该信息放到 MANIFEST.MF 中。
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.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>com.lilin.mvnbook.helloworld.HelloWorld</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
执行 mvan clean install
生成的结果
打开 hello-world-1.0-SNAPSHOT.jar 的 META-INF/MANIFEST.MF 文件可以看到 Main-Class 的值,如下
运行jar包