使用maven创建可执行jar的步骤解析
5 浏览量
更新于2024-09-04
收藏 49KB PDF 举报
"本文将详细介绍如何使用Maven来生成一个可以直接执行的JAR文件。在不依赖外部库的情况下,通过配置Maven的maven-jar-plugin插件,我们可以创建一个包含主清单属性的JAR,使其能够直接通过`java -jar`命令执行。"
在Java开发中,Maven是一个非常流行的构建工具,它可以帮助我们管理项目依赖、构建工件等。当需要将一个Java项目打包成可执行的JAR文件时,通常需要确保JAR包含了运行所需的全部依赖,并且有一个正确的主清单属性(Main-Class),这样才能通过`java -jar`命令直接运行。
首先,创建一个简单的Java项目,只有一个包含主函数的类,例如名为`Xixi.java`的类,其中包含`public static void main(String[] args)`方法。项目的`pom.xml`文件应该至少包含以下基本配置:
```xml
<project>
<groupId>com.paxi</groupId>
<artifactId>xixi</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>xixi</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
```
然后,执行`mvn clean install`命令,Maven会生成一个JAR文件,但这个JAR文件可能无法直接运行,因为它缺少主清单属性。当你尝试使用`java -jar xixi-1.0-SNAPSHOT.jar`命令时,会收到错误提示:“xixi-1.0-SNAPSHOT.jar中没有主清单属性”。
要解决这个问题,我们需要在`pom.xml`中添加`maven-jar-plugin`插件,配置它来生成包含主清单属性的JAR文件。具体配置如下:
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.paxi.xixi.Xixi</mainClass> <!-- 替换为你的主类全名 -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
```
这里,`<mainClass>`标签指定了程序的入口点,即包含`main`方法的类的全限定名。添加了这个配置后,再次执行`mvn clean install`,Maven会生成一个新的JAR文件,这次它应该包含了主清单属性。现在,你可以通过`java -jar xixi-1.0-SNAPSHOT.jar`来直接运行这个JAR文件,它将执行`Xixi`类中的`main`方法。
如果项目依赖了其他库,还需要使用`maven-assembly-plugin`或`maven-shade-plugin`来创建一个“fat”或“uber”JAR,它包含了所有依赖,以便在没有外部环境的情况下运行。不过,对于简单的无依赖项目,上述的`maven-jar-plugin`配置已经足够生成可执行的JAR文件了。
总结来说,通过正确配置Maven的maven-jar-plugin插件,开发者可以轻松地创建一个可以直接运行的JAR文件,这对于部署和分享小型Java应用程序非常方便。记得在配置插件时指定你的主类全名,这样Maven就能生成一个带有正确主清单属性的JAR,使得`java -jar`命令能够顺利执行。
2020-08-18 上传
2020-08-28 上传
点击了解资源详情
2020-08-19 上传
2020-08-18 上传
2014-11-25 上传
2020-08-26 上传
点击了解资源详情