最近需要将项目进行打包,本来使用默认的maven-dependency-plugin 就足够了,但是现在需要一些自定义的处理,需要将依赖的包打入lib目录,同时将main class jar与lib文件夹一起压缩成zip包。
这时候maven-dependency-plugin就不管用了,需要上maven-assembly-plugin了。
目标文件目录
+helloworld.zip
helloworld.jar
+lib/
dependency1.jar
dependency1.jar
POM配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
< plugin >
< artifactId >maven-jar-plugin</ artifactId >
< configuration >
< archive >
< manifest >
< addClasspath >true</ addClasspath >
< classpathPrefix >lib/</ classpathPrefix >
< mainClass >xxx.MainJob</ mainClass >
</ manifest >
</ archive >
< finalName >${project.artifactId}-${env}-${project.version}</ finalName >
</ configuration >
</ plugin >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-assembly-plugin</ artifactId >
< configuration >
< descriptors >
< descriptor >assembly.xml</ descriptor >
</ descriptors >
</ configuration >
< executions >
< execution >
< id >make-assembly</ id >
< phase >package</ phase >
< goals >
< goal >single</ goal >
</ goals >
</ execution >
</ executions >
</ plugin >
|
Assembly.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
< assembly xmlns = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd" >
< id ></ id >
< formats >
<!--<format>tar.gz</format>-->
<!--<format>tar.bz2</format>-->
< format >zip</ format >
</ formats >
< fileSets >
< fileSet >
< directory >${project.basedir}</ directory >
< outputDirectory >/</ outputDirectory >
< includes >
< include >README*</ include >
< include >LICENSE*</ include >
< include >NOTICE*</ include >
</ includes >
</ fileSet >
< fileSet >
< directory >${project.build.directory}/site</ directory >
< outputDirectory >docs</ outputDirectory >
</ fileSet >
< fileSet >
< directory >${project.build.directory}/</ directory >
< outputDirectory >/</ outputDirectory >
< includes >
< include >*.jar</ include >
</ includes >
</ fileSet >
</ fileSets >
< dependencySets >
< dependencySet >
< outputDirectory >/lib</ outputDirectory >
< useProjectArtifact >false</ useProjectArtifact >
< scope >runtime</ scope >
</ dependencySet >
</ dependencySets >
</ assembly >
|
执行命令
1
|
mvn package |
相关推荐
Assembly Plugin是Maven的一个插件,用于创建自定义的归档文件,如JAR、WAR或ZIP格式,包含项目的所有依赖、资源和配置文件。 在博文链接(已提供但无法直接访问)中,作者可能详细讲解了如何配置和使用Maven ...
xml java系统源码 spring-boot-assembly ...maven-dependency-plugin maven-resources-plugin CHANGELOG 1.maven-assembly-plugin 配置assembly.xml文件路径 <plugin> <artifactId>maven-assembly-plugin <version>3.1
而`maven-assembly-plugin`是Maven的一个插件,用于创建自定义的打包(assembly)格式,比如tar、tar.gz、zip等。这个插件允许开发者在打包过程中包含额外的资源,如配置文件、文档等,使得最终的发布包更完整,便于...
1. Maven Assembly Plugin Maven Assembly 插件允许开发者将项目的输出,包括依赖、模块、网站文档和其他文档集成到一个单一的文档中,以便于定制打包。这个插件支持多种输出格式,如zip、tar、tar.gz、gar.bz2、jar...
此外,Maven允许通过插件扩展其功能,如`maven-assembly-plugin`用于生成可分发的包。 ### 四、Maven的高级特性 1. **聚合与继承**:多个项目可以通过`<modules>`在POM中聚合,便于一起构建和管理。而父POM可以...
4. **Maven Assembly Plugin** 或 **Maven Archiver**: 这两个插件常用于创建包含项目所有依赖的归档文件,例如 ZIP 或 TAR。虽然它们不直接生成 PDF,但可以用于打包生成的 PDF 文件,以便于分发。 ```xml ...
总结来说,通过在`pom.xml`中正确配置`maven-jar-plugin`和`maven-assembly-plugin`,并配合`assembly.xml`文件,可以确保批处理项目被打包成一个可执行的JAR文件,其中包含了所有必要的依赖,并且能够明确指定主类...
2. **依赖管理(Dependency Management)**:Maven通过POM自动管理项目依赖,解决jar库冲突,使得构建过程自动化。 3. **生命周期(Lifecycle)**:Maven有预定义的一系列构建阶段,如编译、测试、打包、部署等,...
5. 插件使用:Maven 支持丰富的插件,如 `maven-surefire-plugin` 进行单元测试,`maven-assembly-plugin` 打包成可执行 jar 等。 6. 部署项目:通过 `mvn deploy` 命令,将项目发布到远程仓库。 7. 多模块项目:...
在pom.xml中定义插件配置,如使用`maven-jar-plugin`打包成JAR,或`maven-assembly-plugin`生成可执行的WAR包。 7. **依赖管理和解决冲突**:Maven会自动下载并管理项目依赖,如果遇到版本冲突,可以通过指定依赖的...
1. **maven-assembly-plugin**:创建可分发的归档文件,如zip或tar.gz。 2. **maven-resources-plugin**:处理项目资源文件,如复制和过滤。 3. **maven-javadoc-plugin**:生成Javadoc文档。 4. **maven-surefire-...
Maven 插件扩展了 Maven 的功能,如 `maven-jar-plugin` 可以创建 JAR 文件,`maven-assembly-plugin` 用于构建可分发的归档,`maven-site-plugin` 则生成项目站点。 ### 6. 总结 Maven 的安装和仓库管理是 Java ...