Maven是一个流行的项目管理工具,它可以简化Java项目的构建过程。而使用Maven中的assembly插件可以将多个依赖包以及其他文件打包到一个可执行的jar包中,这在一些项目中非常有用。下面是一个完整攻略,包含了示例和详细步骤。
1. 添加依赖
首先,需要在项目的Maven配置文件(pom.xml)中添加assembly插件和相关依赖。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>create-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
在上述代码中,maven-assembly-plugin
插件指定了要打包的jar的配置,maven-invoker
是必需的依赖, jar-with-dependencies
描述符用于打包依赖。
2. 配置descriptor
下一步是配置一个描述符文件(即描述打包规则的XML文件),文件名一般为assembly.xml
,并将其放入src/main/assembly
目录下。
示例一:只打包Java文件:
<assembly>
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<includes>
<include>*.class</include>
</includes>
</fileSet>
</fileSets>
</assembly>
上述代码的意思是,将编译后的Java文件打包成jar文件。
示例二:打包Java文件和依赖库,且排除部分依赖:
<assembly>
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>com.example:example-lib</include>
</includes>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<includes>
<include>*.class</include>
</includes>
</fileSet>
</fileSets>
</assembly>
上述代码的意思是,将编译后的Java文件和依赖库打包成jar文件,并排除了junit:junit
这个依赖。
3. 执行打包命令
接下来,运行以下命令执行打包:
mvn clean package # 执行Maven的clean和package命令,打包成jar文件放在target目录下
4. 运行打包结果
最后,进入target
目录并运行打包好的jar文件:
java -jar my-project-1.0-SNAPSHOT-jar-with-dependencies.jar
上述命令中my-project-1.0-SNAPSHOT-jar-with-dependencies.jar
是打包好的jar文件的名称。
以上就是使用Maven的assembly插件打包jar包的完整攻略了,同时提供了两个具体的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven中利用assembly插件打包jar包 - Python技术站