gpt4 book ai didi

maven 使用assembly 进行打包的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章maven 使用assembly 进行打包的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1. pom 中添加assembly 插件 。

要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示:

?
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
40
41
42
43
44
45
46
47
48
49
50
51
< build >
   < finalName >${project.artifactId}</ finalName >
   < sourceDirectory >src/main/java</ sourceDirectory >
   < resources >
     < resource >
       < directory >src/main/resources</ directory >
       < filtering >true</ filtering >
       < includes >
         < include >**/*.xml</ include >
         < include >**/*.properties</ include >
       </ includes >
     </ resource >
     < resource >
       < directory >${profile.dir}</ directory >
       < filtering >true</ filtering >
     </ resource >
   </ resources >
 
   < plugins >
     <!-- compiler插件参数设置,指定编码 -->
     < plugin >
       < groupId >org.apache.maven.plugins</ groupId >
       < artifactId >maven-compiler-plugin</ artifactId >
       < version >3.1</ version >
       < configuration >
         < source >1.8</ source >
         < target >1.8</ target >
         < encoding >utf-8</ encoding >
       </ configuration >
     </ plugin >
 
     <!--  这个插件是关键  -->
     < plugin >
       < groupId >org.apache.maven.plugins</ groupId >
       < artifactId >maven-assembly-plugin</ artifactId >
       < configuration >
         <!--  这个是assembly 所在位置 -->
         < descriptor >src/main/assembly/assembly.xml</ descriptor >
       </ configuration >
       < executions >
         < execution >
           < id >make-assembly</ id >
           < phase >package</ phase >
           < goals >
             < goal >single</ goal >
           </ goals >
         </ execution >
       </ executions >
     </ plugin >
   </ plugins >
</ build >

2. 创建assembly文件夹和assembly.xml文件 。

创建assembly文件夹和assembly.xml文件, 这个样子创建主要是规范。  。

在pom 中已经介绍assembly.xml 位置.

?
1
2
<!--  这个是assembly 所在位置 -->
< descriptor >src/main/assembly/assembly.xml</ descriptor >

创建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
< assembly >
   < formats >
     <!--支持 zip,tar,tar.gz,tar.bz2,jar,dir,war 等 -->
     < format >tar.gz</ format >
     < format >zip</ format >
     < format >dir</ format >
   </ formats >
   < includeBaseDirectory >false</ includeBaseDirectory >
   < fileSets >
     < fileSet >
       < directory >src/main/resources</ directory >
       < outputDirectory >conf</ outputDirectory >
       < fileMode >0644</ fileMode >
     </ fileSet >
     < fileSet >
       < directory >${profile.dir}</ directory >
       < outputDirectory >conf</ outputDirectory >
       <!-- 表示的是包含下面格式的资源文件 -->
       < includes >
         < include >*.xml</ include >
         < include >*.properties</ include >
         < include >**/*.xml</ include >
         < include >**/*.properties</ include >
       </ includes >
       < fileMode >0644</ fileMode >
     </ fileSet >
     < fileSet >
       < directory >src/main/assembly/bin</ directory >
       < outputDirectory >bin</ outputDirectory >
       < fileMode >0755</ fileMode >
     </ fileSet >
   </ fileSets >
   < dependencySets >
     < dependencySet >
       < outputDirectory >lib</ outputDirectory >
     </ dependencySet >
   </ dependencySets >
</ assembly >

fileMode 官方解释:

Similar to a UNIX permission, sets the file mode of the files included. THIS IS AN OCTAL VALUE. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the value 0644 translates to User read-write, Group and Other 。

上述的三个fileSet 分别是将resource 下的资源打包到config 目录下, 将assembly下的bin 启动相关脚本打包到bin 目录下, 将maven项目依赖的所有jar 包, 打包到lib 中。  。

具体结构如下图所示:

maven 使用assembly 进行打包的方法

参考地址: http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html 。

zip.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
< 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 >release</ id >
   < formats >
     < format >zip</ format >
   </ formats >
   < fileSets >
     < fileSet >
       < directory >${project.basedir}\src\main\config</ directory >
       <!-- 过滤 -->
       < excludes >
         < exclude >*.xml</ exclude >
       </ excludes >
       < outputDirectory >\</ outputDirectory >
     </ fileSet >
   </ fileSets >
   
   < dependencySets >
     < dependencySet >
       < useProjectArtifact >true</ useProjectArtifact >
       < outputDirectory >lib</ outputDirectory > <!-- 将scope为runtime的依赖包打包到lib目录下。 -->
       < scope >runtime</ scope >
     </ dependencySet >
   </ dependencySets >
</ assembly >

例:

?
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
< assembly >
  < id >assembly</ id >
  < formats >
  < format >tar.gz</ format >
  </ formats >
  < includeBaseDirectory >true</ includeBaseDirectory >
  < fileSets >
  < fileSet >
   < directory >${project.build.directory}/resources</ directory >
   < outputDirectory >resources</ outputDirectory >
   < fileMode >0755</ fileMode >
  </ fileSet >
  < fileSet >
   < directory >${project.build.directory}/config</ directory >
   < outputDirectory >config</ outputDirectory >
   < fileMode >0644</ fileMode >
  </ fileSet >
  < fileSet >
   < directory >${project.build.directory}/bin</ directory >
   < outputDirectory >bin</ outputDirectory >
   < fileMode >0755</ fileMode >
  </ fileSet >
  </ fileSets >
  < dependencySets >
  < dependencySet >
   < outputDirectory >lib</ outputDirectory >
  </ dependencySet >
  </ dependencySets >
</ assembly >

到此这篇关于maven 使用assembly 进行打包的方法的文章就介绍到这了,更多相关maven assembly打包内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/zhongzunfa/article/details/82465939 。

最后此篇关于maven 使用assembly 进行打包的方法的文章就讲到这里了,如果你想了解更多关于maven 使用assembly 进行打包的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com