当我们使用Maven构建项目时,打包是非常重要的一部分。Maven支持多种打包方式,例如JAR、WAR、EAR等。本文将详细介绍Maven打包项目的几种方式,并提供两个示例。
1. JAR包
在Maven项目中使用maven-jar-plugin
插件来生成JAR文件。当我们运行mvn package
命令时,Maven将使用此插件来创建一个包含编译后的类文件和资源文件的JAR文件。
你可以在pom.xml
文件中添加以下代码来配置maven-jar-plugin
插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.Main</mainClass> <!-- 设置主类 -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
在上面的代码中,通过<mainClass>
标签来设置JAR包的主类,也可以使用命令行参数-Dexec.mainClass
来设置。
执行mvn package
命令后,Maven将生成一个名为project-name-version.jar
的JAR文件。你可以使用java -jar
命令来运行该JAR文件。例如:
java -jar project-name-version.jar
2. WAR包
在Maven Web项目中,我们通常使用maven-war-plugin
插件来生成WAR文件。当我们运行mvn package
命令时,Maven将使用此插件来创建一个包含编译后的类文件、Web资源和静态文件的WAR文件。
你可以在pom.xml
文件中添加以下代码来配置maven-war-plugin
插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
在上面的代码中,通过<warSourceDirectory>
标签来指定Web资源所在目录。如果你的项目中没有web.xml
文件,可以将<failOnMissingWebXml>
标签设为false
。
执行mvn package
命令后,Maven将生成一个名为project-name-version.war
的WAR文件。你可以将该WAR文件部署到Web服务器中。
示例1:打包Web项目
以下是一个简单的Web项目的目录结构:
my-webapp
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── example
│ └── MyServlet.java
└── webapp
├── WEB-INF
│ ├── lib
│ │ └── log4j-1.2.17.jar
│ └── web.xml
└── index.jsp
在pom.xml
文件中添加以下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
运行mvn package
命令后,Maven将生成一个名为my-webapp-1.0-SNAPSHOT.war
的WAR文件。
示例2:打包可执行JAR文件
以下是一个简单的Java项目的目录结构:
my-java-app
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── example
│ └── Main.java
└── resources
└── log4j.properties
在pom.xml
文件中添加以下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
运行mvn package
命令后,Maven将生成一个名为my-java-app-1.0-SNAPSHOT.jar
的可执行JAR文件。
你可以使用以下命令来运行该JAR文件:
java -jar my-java-app-1.0-SNAPSHOT.jar
以上就是Maven打包项目的几种方式的完整攻略,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:maven 打包项目的几种方式 - Python技术站