-
Notifications
You must be signed in to change notification settings - Fork 0
/
pom.xml
234 lines (216 loc) · 11.7 KB
/
pom.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
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<?xml version="1.0" encoding="UTF-8"?>
<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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 此部分不能使用 <properties/...> 中的元素来取代,必须直接给出具体的内容 -->
<groupId>org.wangpai.calculator</groupId>
<artifactId>calculator-windows-ui</artifactId>
<version>4.0</version>
<packaging>pom</packaging>
<modules>
<module>calculator-entrance</module>
<module>calculator-ui</module>
<module>calculator-backend</module>
</modules>
<properties>
<!-- 不加此项,JavaFX 打包出来中文会乱码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<!-- 凡是自定义的属性,都要加 .custom 后缀,以防与已有的预置属性相冲突 -->
<project.version.custom>4.0</project.version.custom>
<mathlab-fx.version.custom>1.0</mathlab-fx.version.custom>
<junit.version.custom>5.8.2</junit.version.custom>
<lombok.version.custom>1.18.20</lombok.version.custom>
<openjfx.version.custom>17.0.1</openjfx.version.custom>
<spring.version.custom>5.3.9</spring.version.custom>
<log4j2.version.custom>2.15.0</log4j2.version.custom>
<slf4j.version.custom>2.15.0</slf4j.version.custom>
<mainclass.custom>org.wangpai.calculator.CalculatorApplication</mainclass.custom>
</properties>
<dependencyManagement>
<dependencies>
<!-- 这些依赖是笔者自己的另一个项目:mathlab-fx 的子 Maven 模块 -->
<dependency>
<groupId>org.wangpai.mathlab</groupId>
<artifactId>exception</artifactId>
<version>${mathlab-fx.version.custom}</version>
</dependency>
<dependency>
<groupId>org.wangpai.mathlab</groupId>
<artifactId>mathlib</artifactId>
<version>${mathlab-fx.version.custom}</version>
</dependency>
<dependency>
<groupId>org.wangpai.mathlab</groupId>
<artifactId>mathexp</artifactId>
<version>${mathlab-fx.version.custom}</version>
</dependency>
<!-- *************************************************************** -->
<dependency>
<groupId>org.wangpai.calculator</groupId>
<artifactId>calculator-entrance</artifactId>
<version>${project.version.custom}</version>
</dependency>
<dependency>
<groupId>org.wangpai.calculator</groupId>
<artifactId>calculator-ui</artifactId>
<version>${project.version.custom}</version>
</dependency>
<dependency>
<groupId>org.wangpai.calculator</groupId>
<artifactId>calculator-backend</artifactId>
<version>${project.version.custom}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version.custom}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version.custom}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version.custom}</version>
</dependency>
<!-- 设置 SLF4J 与之绑定的日志包。无需提供 SLF4J 的 JAR 包,因为 Lombok 已经提供了 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${slf4j.version.custom}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version.custom}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${openjfx.version.custom}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${openjfx.version.custom}</version>
</dependency>
<!-- 提供注解 @Controller 等 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version.custom}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!-- 此插件必须放在父 POM 中 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<!--
设置将依赖整合到一个自定义名称的 JAR 包。
如果不设置此项,依赖将整合到 Maven 无插件时的默认 JAR 包,并生成一个前缀为 original- 的无依赖 JAR 包
-->
<shadedArtifactAttached>true</shadedArtifactAttached>
<!-- 设置生成的 JAR 包后缀名 -->
<shadedClassifierName>shaded-with-dependencies</shadedClassifierName>
<!-- 设置程序运行入口 -->
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${mainclass.custom}</mainClass>
</transformer>
</transformers>
<!-- 设置 JAR 包输出目录 -->
<outputDirectory>${project.build.directory}/#maven-shade-plugin</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 此插件暂时没起到什么作用,留着以后备用 -->
<!-- <!– 此插件必须放在父 POM 中 –>-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-assembly-plugin</artifactId>-->
<!-- <version>3.3.0</version>-->
<!-- <executions>-->
<!-- <!–-->
<!-- 执行本插件的方法为,在主目录下执行如下命令:-->
<!-- mvn package assembly:single-->
<!-- 对于 IntelliJ IDEA,生成的 JAR 包位于每个模块下的文件夹 target-->
<!-- –>-->
<!-- <execution>-->
<!-- <id>make-assembly</id>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <!– 此处 IntelliJ IDEA 可能会报红,这是正常现象 –>-->
<!-- <goal>single</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- <configuration>-->
<!-- <archive>-->
<!-- <manifest>-->
<!-- <!– 配置程序运行入口所在的类 –>-->
<!-- <mainClass>${mainClass}</mainClass>-->
<!-- </manifest>-->
<!-- </archive>-->
<!-- <!– 设置 JAR 包输出目录 –>-->
<!-- <outputDirectory>${project.build.directory}/#maven-assembly-plugin</outputDirectory>-->
<!-- <!– 设置打包后的 JAR 包的目录结构为默认 –>-->
<!-- <descriptorRefs>-->
<!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!-- </descriptorRefs>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- 此插件暂时没起到什么作用,留着以后备用 -->
<!--
此插件是用于拷贝该模块的资源文件指指定目录。
但生成的资源文件只包含本模块的资源文件,不包括其依赖的其它模块的资源文件
此插件可在生命周期 package 中被执行。
此插件往往与插件 maven-jar-plugin、maven-dependency-plugin 一起使用
-->
<!-- <plugin>-->
<!-- <artifactId>maven-resources-plugin</artifactId>-->
<!-- <version>3.2.0</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>copy-resources</id>-->
<!-- <!– 设置此插件执行的阶段,可更改为其它阶段 –>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>copy-resources</goal>-->
<!-- </goals>-->
<!-- <configuration>-->
<!-- <!– 设置资源文件输出目录 –>-->
<!-- <outputDirectory>${project.build.directory}/#maven-resources-plugin</outputDirectory>-->
<!-- <resources>-->
<!-- <resource>-->
<!-- <!– 设置原资源文件所在目录 –>-->
<!-- <directory>src/main/resources</directory>-->
<!-- </resource>-->
<!-- </resources>-->
<!-- </configuration>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
</plugins>
</build>
</project>