maven-war-plugin版权声明
原创Apache Maven WAR Plugin
The WAR Plugin is responsible for collecting all artifact dependencies, classes and resources of the web application and packaging them into a web application archive.
“包装”这个词听起来很土。更正式的术语应该是“构建项目软件包”。具体来说,项目中的各种文件,例如源代码、编译生成的字节码、配置文件和文档,都是以标准格式生成和归档的。当然,最常见的是JAR包和WAR复杂点的示例是Maven官方下载页面的分发包具有自定义格式,便于用户解压后在命令行使用。作为“包装工具”,Maven帮助用户创建各种软件包的自然义务,规范JAR包和WAR包自然不再是单词,还必须支持稍微复杂的自定义打包格式,本文介绍了一些常用的打包案例和相关实现,除了前面提到的一些包,您还可以看到如何生成源包,Javadoc包,并可直接从命令行运行。CLI包。
任何一个Maven需要定义项目。POM元素packaging(如果未写入,则默认值为jar). 顾名思义,该元素决定了项目的打包方式。在现实世界中,如果不声明元素,Maven将帮助您生成一个JAR包裹如果定义元素的值war然后你会得到一个。WAR包裹如果定义其值POM(例如,它是父模块),则不会生成任何包。除此之外,Maven默认情况下,还支持一些其他流行的打包格式,例如ejb3和ear你不需要知道具体的包装细节,你只需要告诉Maven“我是什么样的项目?”这是协议对配置的影响。
对应于相同package生命周期阶段,Maven为jar已调用项目maven-jar-plugin,为war已调用项目maven-war-plugin换句话说,packaging直接影响Maven构建生命周期。这一点很重要,尤其是当您需要自定义打包行为时,您必须知道要配置哪个插件。
war plugin常用配置参数
archiveClasses配置项
此配置的值为true|false,默认是false。指示是否class把它打包。
正常情况下war工程类型,java编译代码后,将类文件放在WEB-INF/classes目录如下,散装。 配置此参数时true将是一切。class打包为一体jar,jar的名字与war名称一致(后缀除外)。然后把这个jar放到WEB-INF/lib目录,此时WEB-INF/classes目录为空。
attachClasses配置项
此配置的值为true|false,默认是false。表示正在发布war是否同时发布包jar包(只有classes,不包含页面相关文件)。
正常情况下war工程类型,当我们执行install或者deploy的时候build出一个war打包、本地安装或发布到远程。
配置此参数时true时,除了war袋子外面还有一个。jar包装,但jar包的classifier默认为classes。
overlays配置节点
overlays配置将指定war包的内容将与当前项目合并。合并策略:如果存在同名冲突,则使用当前项目中的文件。 overlay具体配置项目(include|exclude)可以指定包含或排除特定模式的文件。
配置示例
多war合并
archiveClasses和attachClasses参数可以同时配置true。此时,包文件包含lib,不含classes。同时发布classifier为classes的jar包。
如果当前项目A需要从B工程的war页面文件被合并到包中,代码也被使用。B类文件。工程B包含的配置如下:
1
2
3
4
5
6
7
8
工程A包含的配置如下:
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
请注意,如果将合并同名文件夹,则不会合并空文件夹。
把class文件已打包jar如何排除。resources目录?
正常情况下war工程类型,java编译代码后,将类文件放在WEB-INF/classes目录如下,散装。 当archiveClasses参数已配置true将是一切。class打包为一体jar,jar的名字与war名称一致。然后把这个jar放到WEB-INF/lib目录,此时WEB-INF/classes目录为空,但如果需要war包的WEB-INF/classes中保留logback.xml配置文件,我该怎么做?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
项目是动态打包的,不同的环境用不同的配置文件打包。
demo 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
project/
`-- src
|-- main
| |-- java
| |-- resources
| | |-- local
| | | |-- logback.xml
| | | |-- spring-dataSource.xml
| | | `-- variable.propertes
| | |-- product
| | | |-- logback.xml
| | | |-- spring-dataSource.xml
| | | `-- variable.propertes
| | `-- qa
| | |-- logback.xml
| | |-- spring-dataSource.xml
| | `-- variable.propertes
| |-- webapp
`-- test
1
2
maven package –P local 开发环境
maven package –P product 生产环境
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
52
53
54
55
56
57
58
59
60
61
62
63
64
demo 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
project/
`-- src
|-- main
| |-- java
| |-- env
| | |-- dev
| | | |-- log4j.properties
| | | |-- spring-dataSource.xml
| | | `-- variable.propertes
| | |-- prod
| | | |-- log4j.properties
| | | |-- spring-dataSource.xml
| | | `-- variable.propertes
| | `-- qa
| | |-- log4j.properties
| | |-- spring-dataSource.xml
| | `-- variable.propertes
| |-- resources
| `-- webapp
`-- test
1
2
mvn clean package -P dev
mvn clean package -P qa
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4\_0\_0.xsd">
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除