java - Maven:从阴影插件中排除依赖

标签 java maven packaging

我在 mvn clean install 之后看到了下一个字符串

Including com.sun.jersey.contribs:jersey-multipart:jar:1.5 in the shaded jar

问题:即使我已经为 maven-shade-plugin 添加了 exlusion(见下面的代码),我也无法让它不被着色

我的 maven-shade-plugin:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                        <artifactSet>
                            <excludes>
//Here ==>                      <exclude>com.sun.jersey.contribs:jersey-multipart:jar</exclude>
                            </excludes>
                        </artifactSet>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <manifestEntries>
                                    <Main-Class>Main</Main-Class>
                                    <Build-Number>123</Build-Number>
                                </manifestEntries>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>

最佳答案

根据 http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html ,您的排除语法错误:

Artifacts to include/exclude from the final artifact. Artifacts are denoted by composite identifiers of the general form groupId:artifactId:type:classifier. ... For convenience, the syntax groupId is equivalent to groupId:*:*:*, groupId:artifactId is equivalent to groupId:artifactId:*:* and groupId:artifactId:classifier is equivalent to groupId:artifactId:*:classifier.

因此,请使用 com.sun.jersey.contribs:jersey-multipart:*:jarcom.sun.jersey.contribs:jersey-multipart 进行排除.

               <artifactSet>
                  <excludes>
                     <exclude>com.sun.jersey.contribs:jersey-multipart</exclude>
                   </excludes>
               </artifactSet>

关于java - Maven:从阴影插件中排除依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351542/

相关文章:

c# - 如果语句 ||或者 &&

java - 将类型 "2015-23-07T00:00:00Z"的 String 转换为格式 "07/23/2015T00:00:00Z"的 XMLGregorianCalender

java - 如何使用队列在 Java 中实现 BFS(Intro to Algorithms HW)?

java - 为什么 Gradle 不包括必需的依赖项?

algorithm - 打包算法

java - ClassNotFoundException : org. springframework.context.support.ClassPathXmlApplicationContext

Java+Strategy+Factory+同一个包=如何隐藏专门的类?

java - pom.xml 中出现错误。显示连接超时。我的网络代理不允许连接到 Maven

android - 是否有可能删除存储在 Maven Central 中的库?

python - 为使用 PyInstaller 创建的可执行文件从 dock 隐藏终端