我看到了mvn clean install
之后的下一个字符串
包括com.sun.jersey.contribs:jersey-multipart:广口瓶:1.5(在阴影广口瓶中)
**问题:**即使我已经为maven-shade-plugin添加了排除项,也无法使其不着色(见下面的代码)
我的maven阴影插件:
<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>
3条答案
按热度按时间bbmckpt71#
根据http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html,您的排除语法错误:
要从最终成品中包含/排除的成品。成品是以一般格式groupId:artifactId:type:classifier..的复合识别码表示。为方便起见,语法 groupId 相等 groupId:::,groupId:artifactId 相等 groupId:artifactId::,而groupId:artifactId:classifier* 相等 groupId:artifactId::classifier*。
因此,请使用
com.sun.jersey.contribs:jersey-multipart:*:jar
或com.sun.jersey.contribs:jersey-multipart
作为排除项。bfnvny8b2#
在值为'provided'依赖项标记中添加scope标记它将排除该依赖项
xn1cxnb43#
对于任何人,谁做了很多步骤,以排除一些 * 传递 * 工件从您的脂肪罐,它仍然存在,可能有两个原因:
1.这个依赖项对于其他依赖项是可传递的,而不是你做了排除的那个依赖项。因此你需要在其他地方添加排除标记(如果你的排除位于
<dependencies>
部分,而不是插件级)。mvn dependency:tree
对于这些搜索非常有用。1.这些依赖项类直接从一些依赖项工件作为普通类进入您的jar,而不是传递依赖项。
您的项目中有一个依赖项可能代表fat jar。您想排除的某些类作为普通类而不是可传递依赖项进入您的项目。因此Maven无法排除它。这也是Maven提供的作用域不起作用的一个原因(类仍然存在于您的jar中)。
更多详细信息,请访问:https://mchesnavsky.tech/maven-dependency-exclusion-not-working/