当war与maven-jetty-plugin一起运行时,叠加在类路径上重复

时间:2016-12-15 11:25:11

标签: maven maven-jetty-plugin

在我的项目中,我使用战争叠加。在src / main / resources中的第一次基础战争中,我有文件my-file.txt。第二次战争取决于第一次战争。 第二次战争有一个代码在类路径上查找my-file.txt

Enumeration<URL> urls = MyListener.class.getClassLoader().getResources("my-file.txt");
while (urls.hasMoreElements()) {
    System.out.println("This is my resource:" + urls.nextElement());
}

我的输出是(mvn jetty:run):

  

这是我的资源:jar:file:/ C:/Users/michaldo/.m2/repository/war-plus-war/war1/0.0.1-SNAPSHOT/war1-0.0.1-SNAPSHOT-classes.jar !/my-file.txt

     

这是我的资源:jar:file:/ C:/ Users / michaldo / workspace-n1 / war-plus-war / war2 / target / tmp / war1-0_0_1-SNAPSHOT_war1 / WEB-INF / lib / war1- 0.0.1-SNAPSHOT.jar!/my-file.txt

我可以配置maven jetty插件并避免重复吗?

我的maven-war-plugin配置(jetty有默认配置):

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <archiveClasses>true</archiveClasses>
        <attachClasses>true</attachClasses>
        <dependentWarExcludes>
            WEB-INF/lib/*-*.jar
        </dependentWarExcludes>
    </configuration>
</plugin>

1 个答案:

答案 0 :(得分:0)

问题是dependentWarExcludes已被弃用(甚至在maven-war-plugin 3.0中也不支持

当我将排除设置移到叠加配置时,Maven Jetty插件按预期工作:

<build><plugins><plugin>
  <artifactId>maven-war-plugin</artifactId>
  <configuration>
    <overlays>
      <overlay>
        <groupId>war-plus-war</groupId>
          <artifactId>war1</artifactId>
          <excludes><exclude>
              WEB-INF/lib/*-*.jar
          </exclude></excludes>
        </overlay>
     </overlays>
   </configuration>
</plugin></plugins></build>