当前位置: 首页 > 知识库问答 >
问题:

当战争使用maven-jetty-plugin运行时,覆盖在类路径上被复制

薛承志
2023-03-14

在我的项目中,我使用战争覆盖。在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/存储库/war plus war/war1/0.0.1-SNAPSHOT/war1-0.0.1-SNAPSHOT-classes。罐子/我的文件。txt文件

这是我的资源:jar:文件:/C:/Users/michaldo/workspace-n1/war-plus-war/war2/target/tmp/war1-0\u 0\u 1-SNAPSHOT\u war1/WEB-INF/lib/war1-0.0.1-SNAPSHOT。罐子/我的文件。txt文件

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

我的maven war插件配置(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个答案

叶琦
2023-03-14

问题是,dependentWarExcludes不受欢迎(甚至在maven war插件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>
 类似资料:
  • 嗨,我有一个maven项目,需要在集成测试开始之前将2个WAR部署到一个jetty环境中。在正常情况下,这些WAR不是项目的依赖项,但它们需要分开部署,以便集成测试发挥作用。 有人知道如何在只下载依赖项而不做任何更多事情的war上添加依赖项吗?

  • 我一直在努力研究如何使用maven overlay插件将项目排除在爆炸战争之外。 我有以下内容: xml和applicationcontext.xml可以很好地排除,但它们位于:${basedir}/src/main/webapp/web-inf/下 无论我尝试什么,这些文件是静止的,覆盖,尽管排除。

  • 我们正在开发一个Java web应用程序,将其部署为Tomcat9中的war文件。 由于系统架构的原因,我们希望有一些其他需要部署的战争文件单独的战争文件。它们是商业的,不受我的控制。 我想在pom中添加这个单独的战争作为运行时,所以我们用来部署应用程序的pom知道它们是需要的,并且在webapps目录中部署任何战争依赖项。 我遇到的问题是,当我包含这个战争运行时依赖项时,包阶段将它们作为覆盖添加

  • 我正在写java web应用程序的扩展。我用maven覆盖插件将这个应用程序添加到扩展中,并使用主应用程序中的web.xml文件和webapp文件夹。我还想用jetty嵌入式服务器为我的扩展编写集成测试平台。我试过了

  • 问题内容: 我试图覆盖Python类的方法,因为我想每次实例属性更改其值时都调用另一个函数。但是,我不希望该方法出现此行为,因为在此初始化期间,我设置了一些稍后将要使用的属性: 到目前为止,我有此解决方案,而不必在运行时重写: 但是,我想避免这些,并在方法末尾进行覆盖: 我尝试了和,但是这些尝试都没有效果。我已经阅读了数据模型参考的这一部分,但是看起来自己的分配有些棘手。 如何可能在的末尾进行覆盖

  • 问题内容: 我有一个JAR文件,其中包含一个应用程序以及该应用程序的配置文件。该应用程序从类路径加载配置文件(使用),并使用烘焙到JAR文件中的配置文件完全满足其依赖性。 有时,我希望应用程序以稍微不同的配置运行(特别是我想覆盖JDBC URL以指向其他数据库),因此我创建了一个新的配置文件,将其存储在正确的目录结构中(这意味着类路径条目的目录),我想执行以下操作: 但是我无法在应用程序JAR内容