houzhongjian
2 天以前 6e0d1d51916e4f41e06c06e984a70ebd08352d95
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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.iailab</groupId>
        <artifactId>iailab-module-system</artifactId>
        <version>${revision}</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>iailab-module-system-biz</artifactId>
    <packaging>jar</packaging>
 
    <name>${project.artifactId}</name>
    <description>
        system 模块下,我们放通用业务,支撑上层的核心业务。
        例如说:用户、部门、权限、数据字典等等
    </description>
 
    <dependencies>
        <!-- Spring Cloud 基础 -->
<!--        <dependency>-->
<!--            <groupId>org.springframework.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-bootstrap</artifactId>-->
<!--        </dependency>-->
 
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-env</artifactId>
        </dependency>
 
        <!-- 依赖服务 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-module-system-api</artifactId>
            <version>${revision}</version>
        </dependency>
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-module-infra-api</artifactId>
            <version>${revision}</version>
        </dependency>
 
        <!-- 业务组件 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-biz-data-permission</artifactId>
        </dependency>
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-biz-tenant</artifactId>
        </dependency>
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-biz-ip</artifactId>
        </dependency>
 
        <!-- Web 相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-security</artifactId>
        </dependency>
 
        <!-- DB 相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-mybatis</artifactId>
        </dependency>
 
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-redis</artifactId>
        </dependency>
 
        <!-- RPC 远程调用相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-rpc</artifactId>
        </dependency>
 
        <!-- Registry 注册中心相关 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
 
        <!-- Config 配置中心相关 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
 
        <!-- Job 定时任务相关 -->
<!--        <dependency>-->
<!--            <groupId>com.iailab</groupId>-->
<!--            <artifactId>iailab-common-job</artifactId>-->
<!--        </dependency>-->
 
        <!-- 消息队列相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-mq</artifactId>
        </dependency>
 
        <!-- 服务保障相关 TODO iailab:暂时去掉 -->
<!--        <dependency>-->
<!--            <groupId>com.iailab</groupId>-->
<!--            <artifactId>iailab-common-protection</artifactId>-->
<!--        </dependency>-->
 
        <!-- Test 测试相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!-- 工具类相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-excel</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
 
        <!-- 监控相关 -->
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-monitor</artifactId>
        </dependency>
 
        <dependency>
            <groupId>com.xingyuv</groupId>
            <artifactId>spring-boot-starter-captcha-plus</artifactId> <!-- 验证码,一般用于登录使用 -->
        </dependency>
 
<!--        <dependency>-->
<!--            <groupId>com.iailab</groupId>-->
<!--            <artifactId>iailab-plat-sdk</artifactId>-->
<!--            <version>1.0.0</version>-->
<!--        </dependency>-->
 
    </dependencies>
 
    <build>
        <!-- 设置构建的 jar 包名 -->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- 步骤1:在prepare-package阶段加密YAML文件 -->
<!--            <plugin>-->
<!--                <groupId>org.apache.maven.plugins</groupId>-->
<!--                <artifactId>maven-antrun-plugin</artifactId>-->
<!--                <version>3.0.0</version>-->
<!--                <executions>-->
<!--                    <execution>-->
<!--                        <id>encrypt-yaml-files</id>-->
<!--                        <phase>prepare-package</phase>-->
<!--                        <goals>-->
<!--                            <goal>run</goal>-->
<!--                        </goals>-->
<!--                        <configuration>-->
<!--                            <target>-->
<!--                                &lt;!&ndash; 对target/classes下的所有YAML文件进行Base64编码(实际使用应替换为加密算法) &ndash;&gt;-->
<!--                                <echo message="Encrypting YAML files..." />-->
<!--                                <apply executable="base64" dest="${project.build.outputDirectory}" verbose="true">-->
<!--                                    <fileset dir="${project.build.outputDirectory}" includes="**/*.yml, **/*.yaml"/>-->
<!--                                    <mapper type="glob" from="*" to="*" />-->
<!--                                    <srcfile/>-->
<!--                                </apply>-->
<!--                                &lt;!&ndash; 实际项目中应使用Java/Groovy脚本实现加密 &ndash;&gt;-->
<!--                            </target>-->
<!--                        </configuration>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--            </plugin>-->
<!--            &lt;!&ndash; 步骤2:使用ProGuard混淆代码 &ndash;&gt;-->
<!--            <plugin>-->
<!--                <groupId>com.github.wvengen</groupId>-->
<!--                <artifactId>proguard-maven-plugin</artifactId>-->
<!--                <version>2.7.0</version>-->
<!--                <executions>-->
<!--                    &lt;!&ndash; 以下配置说明执行mvn的package命令时候,会执行proguard&ndash;&gt;-->
<!--                    <execution>-->
<!--                        <phase>package</phase>-->
<!--                        <goals>-->
<!--                            <goal>proguard</goal>-->
<!--                        </goals>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--                <configuration>-->
<!--                    &lt;!&ndash; 就是输入Jar的名称,我们要知道,代码混淆其实是将一个原始的jar,生成一个混淆后的jar,那么就会有输入输出。 &ndash;&gt;-->
<!--                    <injar>${project.build.finalName}.jar</injar>-->
<!--                    &lt;!&ndash; 输出jar名称,输入输出jar同名的时候就是覆盖,也是比较常用的配置。 &ndash;&gt;-->
<!--                    <outjar>${project.build.finalName}.jar</outjar>-->
<!--                    &lt;!&ndash; 是否混淆 默认是true &ndash;&gt;-->
<!--                    <obfuscate>true</obfuscate>-->
<!--                    <putLibraryJarsInTempDir>true</putLibraryJarsInTempDir>-->
<!--                    &lt;!&ndash; 配置一个文件,通常叫做proguard.cfg,该文件主要是配置options选项,也就是说使用proguard.cfg那么options下的所有内容都可以移到proguard.cfg中 &ndash;&gt;-->
<!--                    <proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>-->
<!--                    &lt;!&ndash; 额外的jar包,通常是项目编译所需要的jar &ndash;&gt;-->
<!--                    <libs>-->
<!--                        <lib>${java.home}/lib/rt.jar</lib>-->
<!--                        <lib>${java.home}/lib/jce.jar</lib>-->
<!--                        <lib>${java.home}/lib/jsse.jar</lib>-->
<!--                    </libs>-->
<!--                    &lt;!&ndash; 对输入jar进行过滤比如,如下配置就是对META-INFO文件不处理。 &ndash;&gt;-->
<!--                    <inLibsFilter>!META-INF/**,!META-INF/versions/9/**.class</inLibsFilter>-->
<!--                    &lt;!&ndash; 这是输出路径配置,但是要注意这个路径必须要包括injar标签填写的jar &ndash;&gt;-->
<!--                    <outputDirectory>${project.basedir}/target</outputDirectory>-->
<!--                    &lt;!&ndash;这里特别重要,此处主要是配置混淆的一些细节选项,比如哪些类不需要混淆,哪些需要混淆&ndash;&gt;-->
<!--                    <options>-->
<!--                        &lt;!&ndash; 可以在此处写option标签配置,不过我上面使用了proguardInclude,故而我更喜欢在proguard.cfg中配置 &ndash;&gt;-->
<!--                    </options>-->
<!--                </configuration>-->
<!--            </plugin>-->
            <!-- 打包 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--
            class-winter插件
            注:自Maven3.0.3起, 绑定到同一phase的Maven插件将按照pom.xml中声明的顺序执行
            注:此插件最好放置在同一phase的最后执行。
            注:此插件不具备打包功能,需要在此插件前有打包插件进行项目打包,否则加密不会生效。
            -->
            <plugin>
                <groupId>com.idea-aedi</groupId>
                <artifactId>class-winter-maven-plugin</artifactId>
                <version>2.9.6</version>
                <!-- 相关配置 -->
                <configuration>
                    <!-- <finalName></finalName>-->
                    <includePrefix>com.iailab</includePrefix>
                    <originJarOrWar>${project.build.directory}/${project.build.finalName}.jar</originJarOrWar>
                     <excludePrefix>
                         com.iailab.module.system.SystemServerApplication,
                         org.springframework,
                         org.apache,
                         javax,
                         java,
                         com.alibaba,
                         io.swagger,
                         cn.hutool,
                         org.yaml.snakeyaml
                     </excludePrefix>
                    <!-- <includeXmlPrefix></includeXmlPrefix>-->
                    <!-- <excludeXmlPrefix></excludeXmlPrefix>-->
                    <!-- <toCleanXmlChildElementName></toCleanXmlChildElementName>-->
                     <password>123123123</password>
                    <!-- <includeLibs></includeLibs>-->
                    <!-- <alreadyProtectedRootDir></alreadyProtectedRootDir>-->
                    <!-- <alreadyProtectedLibs></alreadyProtectedLibs>-->
                     <supportFile>${project.basedir}/dependency/</supportFile>
                    <!-- <jvmArgCheck></jvmArgCheck>-->
                    <!-- <tips></tips>-->
                    <!-- <debug></debug>-->
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>class-winter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 
<!--            <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>-->
<!--                            <transformers>-->
<!--                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">-->
<!--                                    <mainClass>com.iailab.module.system.config.ConfigEncryptor</mainClass>-->
<!--                                </transformer>-->
<!--                            </transformers>-->
<!--                        </configuration>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--            </plugin>-->
 
<!--            <plugin>-->
<!--                <groupId>org.apache.maven.plugins</groupId>-->
<!--                <artifactId>maven-dependency-plugin</artifactId>-->
<!--                <version>3.6.1</version>-->
<!--                <executions>-->
<!--                    <execution>-->
<!--                        <id>copy-dependencies</id>-->
<!--                        <phase>package</phase>-->
<!--                        <goals>-->
<!--                            <goal>copy-dependencies</goal>-->
<!--                        </goals>-->
<!--                        <configuration>-->
<!--                            <outputDirectory>${project.build.directory}/lib</outputDirectory>-->
<!--                            <overWriteReleases>false</overWriteReleases>-->
<!--                            <overWriteSnapshots>false</overWriteSnapshots>-->
<!--                            <overWriteIfNewer>true</overWriteIfNewer>-->
<!--                        </configuration>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--            </plugin>-->
 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
</project>