简介:Maven是一个流行的Java项目构建和管理工具,提供了多种打包方式以满足不同的需求。本文将介绍Maven的三种打包方式:使用maven-jar-plugin和maven-dependency-plugin插件打包、使用maven-assembly-plugin插件打包和使用maven-shade-plugin插件打包。
Maven是一个强大的Java项目管理和构建工具,它提供了多种打包方式以满足不同的需求。以下是Maven的三种主要打包方式:
在上面的配置中,maven-jar-plugin插件用于创建JAR文件,而maven-dependency-plugin插件用于复制项目依赖包到指定的目录中。通过运行mvn package命令,Maven将编译源代码并打包成JAR文件。如果一切顺利,最终将生成一个带有Main-Class属性的JAR文件,可以直接通过java -jar命令运行。
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.1.0</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.example.Main</mainClass></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.2</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins></build>
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><archive><manifest><mainClass>com.example.Main</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>