首页 > 编程知识 正文

maven plugin,maven参考配置

时间:2023-05-05 11:45:46 阅读:237233 作者:51

 链接地址:[Selecting Contents for Uber JAR](http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html)

apache网站在国内打开太慢了。因此我将这些有用的资源收集起来,保存在博客中!

Apache Maven Shade Plugin:是一个Maven打包的插件。其官网英文定义如下:This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade

001.

1 <project> 2 ... 3 <build> 4 <plugins> 5 <plugin> 6 <groupId>org.apache.maven.plugins</groupId> 7 <artifactId>maven-shade-plugin</artifactId> 8 <version>2.4.3</version> 9 <executions>10 <execution>11 <phase>package</phase>12 <goals>13 <goal>shade</goal>14 </goals>15 <configuration>16 <artifactSet>17 <excludes>18 <exclude>classworlds:classworlds</exclude>19 <exclude>junit:junit</exclude>20 <exclude>jmock:*</exclude>21 <exclude>*:xml-apis</exclude>22 <exclude>org.apache.maven:lib:tests</exclude>23 <exclude>log4j:log4j:jar:</exclude>24 </excludes>25 </artifactSet>26 </configuration>27 </execution>28 </executions>29 </plugin>30 </plugins>31 </build>32 ...33 </project> View Code

002.

1 <project> 2 ... 3 <build> 4 <plugins> 5 <plugin> 6 <groupId>org.apache.maven.plugins</groupId> 7 <artifactId>maven-shade-plugin</artifactId> 8 <version>2.4.3</version> 9 <executions>10 <execution>11 <phase>package</phase>12 <goals>13 <goal>shade</goal>14 </goals>15 <configuration>16 <filters>17 <filter>18 <artifact>junit:junit</artifact>19 <includes>20 <include>junit/framework/**</include>21 <include>org/junit/**</include>22 </includes>23 <excludes>24 <exclude>org/junit/experimental/**</exclude>25 <exclude>org/junit/runners/**</exclude>26 </excludes>27 </filter>28 <filter>29 <artifact>*:*</artifact>30 <excludes>31 <exclude>META-INF/*.SF</exclude>32 <exclude>META-INF/*.DSA</exclude>33 <exclude>META-INF/*.RSA</exclude>34 </excludes>35 </filter>36 </filters>37 </configuration>38 </execution>39 </executions>40 </plugin>41 </plugins>42 </build>43 ...44 </project> View Code

003.

1 <project> 2 ... 3 <build> 4 <plugins> 5 <plugin> 6 <groupId>org.apache.maven.plugins</groupId> 7 <artifactId>maven-shade-plugin</artifactId> 8 <version>2.4.3</version> 9 <executions>10 <execution>11 <phase>package</phase>12 <goals>13 <goal>shade</goal>14 </goals>15 <configuration>16 <minimizeJar>true</minimizeJar>17 </configuration>18 </execution>19 </executions>20 </plugin>21 </plugins>22 </build>23 ...24 </project> View Code

004.

1 <project> 2 ... 3 <build> 4 <plugins> 5 <plugin> 6 <groupId>org.apache.maven.plugins</groupId> 7 <artifactId>maven-shade-plugin</artifactId> 8 <version>2.4.3</version> 9 <executions>10 <execution>11 <phase>package</phase>12 <goals>13 <goal>shade</goal>14 </goals>15 <configuration>16 <minimizeJar>true</minimizeJar>17 <filters>18 <filter>19 <artifact>log4j:log4j</artifact>20 <includes>21 <include>**</include>22 </includes>23 </filter>24 <filter>25 <artifact>commons-logging:commons-logging</artifact>26 <includes>27 <include>**</include>28 </includes>29 </filter>30 </filters> 31 </configuration>32 </execution>33 </executions>34 </plugin>35 </plugins>36 </build>37 ...38 </project> View Code

 

(001)`Shade`官网上的介绍也不多。可能因为其相对比较简单吧。但是,我这个菜鸟仍然很头疼如何配置`Shade`。网上的资料比较少,估计也是认为比较简单吧,没人撰文详细介绍`Shade`。所以,官方提供的例子就成为最有价值的资料了。

(002)结合`Shade`源码,我开始踏上研究如何使用的`Shade`旅程。源码的获得比较简单,为了研究`Shade`可以将其添加到pom.xml的`dependencies`中。当然也可以去官网镜像下载。

(003)研究任何`Maven Plugin`之前,都应该先看看这篇插件的介绍 [Guide to Configuring Plug-ins](http://maven.apache.org/guides/mini/guide-configuring-plugins.html),这会让你少走很多弯路(我不会告诉你我是掉坑里了爬起来才知道的)。

(003001)在这篇官方文档里,我首次看到了`Mojo`,这是Maven Plugin使用的一个IOC框架。(当下我并没有去研究Mojo所以知道的有限也许未来会去研究下。有兴趣的朋友可以去搜索下。)

(003002)`Mojo`中的字段是和plugin中的配置对应的,如果对例子中的配置很疑惑,就可以翻开源码中的`Mojo`顺藤摸瓜,找到它们的原理。`Shade`中的`Mojo`就是`ShadeMojo.java`了。

(004)end.

 

转载于:https://www.cnblogs.com/juedui0769/p/5600081.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。