Maven是一个流行的Java项目管理和构建工具,它可以自动处理依赖关系和构建过程。 Maven Assembly插件提供了将Java应用程序打包成一个可执行的JAR文件并创建用于启动应用程序的脚本的功能。本教程将介绍如何使用Maven Assembly插件打包Java应用程序并生成启动脚本。
安装Maven
首先,您需要安装Maven。您可以从Maven官方网站下载jar包,然后解压缩到您的本地文件夹中。接下来,将Maven的bin目录添加到您的系统路径中。
配置Maven项目
在您的Maven项目的pom.xml文件中添加以下插件配置:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在这个配置文件中,我们将使用maven-assembly-plugin插件。我们使用descriptorRefs指定生成JAR文件和依赖的lib文件夹,并将appendAssemblyId设置为false,以避免生成带有带有“with-dependencies”后缀的文件。
在“archive”中指定manifest和mainClass的名称。这里,我们将“com.example.MainClass”指定为应用程序的主要类。在“execution”中指定需要生成脚本的时间。
打包应用程序并生成脚本
在完成配置后,您需要运行以下命令:
mvn clean package
这将生成包含所有依赖项和JAR文件的目录。然后执行以下命令:
mvn assembly:single
这将生成一个可执行的JAR文件和两个启动脚本:
- start.bat:用于Windows系统
- start.sh:用于Linux和Mac系统
您可以使用这些脚本启动您的Java应用程序。
示例1
假设您的Java应用程序在com.example.MainClass类中。以下是您的项目结构:
myproject
├── pom.xml
├── src
│ └── main
│ └── java
│ └── com
│ └── example
│ └── MainClass.java
在pom.xml文件中添加上述Maven配置,并在命令行中运行以下命令:
mvn clean package
mvn assembly:single
这将生成myproject/target/myproject-jar-with-dependencies.jar文件,以及start.bat和start.sh启动脚本文件。
示例2
假设您将在项目中使用Spring Boot。这是您的项目结构:
myproject
├── pom.xml
├── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── MySpringBootApplication.java
│ └── resources
│ ├── application.properties
│ └── static
│ └── index.html
在pom.xml文件中,您需要添加Spring Boot插件配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MySpringBootApplication</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后,运行以下命令:
mvn clean package
mvn assembly:single
这将在myproject/target/myproject-jar-with-dependencies.jar中生成您的应用程序,并生成start.bat和start.sh启动脚本文件。
通过这个教程,您了解了如何使用Maven Assembly插件打包Java应用程序并生成启动脚本。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:maven assembly打包生成Java应用启动脚本bat和sh的方法 - Python技术站