使用maven创建可执行jar的步骤解析

0 下载量 99 浏览量 更新于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`命令能够顺利执行。