maven war 覆盖不会排除依赖项

maven war overlay won't exclude dependancies

我有一个项目,我试图用来自另一个模块的编译 jar 和 war 项目中的一些文件覆盖预构建的 war。

+pom.xml
|
+-+depandancy_dir
| |
| + source.war
|
+-+ jar
| |
| + pom.xml
| + src
|  ...
|
+-+war_dir
  |
  + pom.xml
  + src
    .... no jars

我想排除一些配置为jar的maven依赖的jar。

我已经在 war 的 pom 中尝试了以下所有排除行。不管怎样,不需要的罐子都会出现。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <dependentWarExcludes>**/unwanted-core-1.1.jar</dependentWarExcludes>
                <overlays>
                    <overlay>
                       <groupId>src.war</groupId>
                       <artifactId>base.war</artifactId>

                       <excludes>
                            <exclude>**/unwanted-core-1.1.jar</exclude>     
                            <packagingExcludes>**/unwanted-core-1.1.jar</packagingExcludes>                           
                            <exclude>WEB-INF/lib/unwanted-core-1.1.jar</exclude>     
                            <packagingExcludes>WEB-INF/lib/unwanted-core-1.1.jar</packagingExcludes>                           
                       </excludes>

                    </overlay>
                </overlays>
            </configuration>
        </plugin>

我是运行 eclipse下的maven。 war 插件报告版本 maven-war-plugin:2.2:war

原来我试图以错误的方式解决问题。排除继续依赖。

  <dependencies>
        <dependency>
        <!-- the jar of custom code -->
            <groupId>my.group</groupId>
            <artifactId>jar</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <exclusions>
               <exclusion>  <!-- declare the exclusion here -->
                    <groupId>org.unwanted</groupId>
                    <artifactId>unwanted-core</artifactId>
               </exclusion>
            </exclusions>
        </dependency>
        <dependency>
<!-- the war I am overlaying -->
            <groupId>my.group</groupId>
            <artifactId>a.base.war</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/../dependancies/jreport.war</systemPath>
            <type>war</type>
        </dependency>

  </dependencies>

以下链接对我有帮助。

https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

Maven: remove a single transitive dependency