一段插件配置代码与这样配置的原因

今天在整理框架的时候,看到了一段很奇怪的maven插件配置代码,如下:

 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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>base</classifier>
                <excludes>
                    <exclude>**/configuration/error/**</exclude>
                    <exclude>**/configuration/web/Interceptor/**</exclude>
                    <exclude>**/configuration/web/InterceptorConfig.*</exclude>
                    <exclude>**/base/controller/**</exclude>
                    <exclude>**/configuration/web/response/ControllerResponseBodyAdvice.*</exclude>
                    <exclude>**/configuration/web/UnderTowConfiguration.*</exclude>
                    <exclude>**/storage/**</exclude>
                </excludes>
            </configuration>
        </execution>
    </executions>
</plugin>

这一段代码,在配置org.apache.maven.plugins.maven-jar-plugin插件,我们让这个插件在打包的时候,忽略指定的.class文件。为什么会有这样的需求呢?因为我们的部分项目将FeignClient的代码和Application的代码写在了一起,所以我们在打包的手需要将一些文件给exclude出去。

我首先是不支持将FeignClient的代码和Application的代码写在一起的,我会开两个Module隔离这些代码;其次,我是不主张这部分过度依赖旧框架的项目升级到新框架的,我主张的是将框架直接推到重写,我们的目标就单纯的是新项目。