java - Maven 项目中重复的 context.xml

标签 java maven tomcat

我有以下项目结构:

src/
  main/
    java/
      ...
    resources/
      META-INF/
        context.xml
        persistence.xml
    webapp/
      WEB-INF/
        web.xml
        ...
      ...
  test/
    ...

pom.xml(具体来说,build 部分)如下所示:

<build>
<finalName>...</finalName>

<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
  </plugin>

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
      <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
      <containerConfigXML>src/main/resources/META-INF/context.xml</containerConfigXML>
    </configuration>
  </plugin>
</plugins>
</build>

问题是 context.xml 在生成的 WAR 中被加倍了。它出现在

  1. /META-INF - 这是它的正确位置,并且
  2. /WEB-INF/classes/META-INF。我看到它像任何其他资源一样从 resources 文件夹复制到这里。

应用程序部署完美,但这种重复确实让我很困扰。我的设置有什么问题?

最佳答案

添加 <resources> <build> 下的元素, 并明确排除该文件。

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <excludes>
            <exclude>META-INF/context.xml</exclude>
        </excludes>
    </resource>
</resources>

关于java - Maven 项目中重复的 context.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16542902/

相关文章:

java - Spring Boot 中的多种日志记录实现

Tomcat:托管两个 Web 应用程序时出错 => native 库 sqljdbc_auth.dll 已加载到另一个类加载器中

Java Web 启动 : unsigned cglib

java - 消息新鲜度和有效性 JAVA PHP mysql

java - 在单个 Java 应用程序中实现多个服务

java - 通过SBT中的https访问Maven repo

java - 生命周期配置未涵盖的插件执行 : com. jayway.maven.plugins.android.generation2 :android-maven-plugin:3. 8.2:consume-aar

java - dyn :evaluate extension function known to have issues in Xalan-J 2. 7.1 是吗?

java - 如何检查 JMX 代理是否在 Tomcat 中工作?

tomcat - 如何将windows系统的war推送到boot2docker的VM tomcat webapp文件夹?