【问题标题】:Filtering Maven files into WEB-INF将 Maven 文件过滤到 WEB-INF
【发布时间】:2010-12-19 10:26:43
【问题描述】:

我正在尝试向位于 WEB-INF 目录中的应用程序上下文文件添加一些过滤。

我在文件夹 /src/main/resources 中有要过滤的文件 (xmlgateway-context.xml)。

我在文件夹 src/main/filters 中有属性文件 (config-e05.properties)

我的 POM 设置如下:

<!-- environment profiles -->
<profiles>
 <profile>
  <id>e04</id>
  <properties>
   <targetenv>e04</targetenv>
  </properties>
 </profile>
 <profile>
  <id>e05</id>
  <properties>
   <targetenv>e05</targetenv>
  </properties>
 </profile>
</profiles>

<!-- build settings (filtering) -->
<build>
 <filters>
  <filter>src/main/filters/config-${targetenv}.properties</filter>
 </filters>
 <resources>
  <resource>
   <targetPath>WEB-INF</targetPath>
   <filtering>true</filtering>
   <directory>src/main/resources</directory>
  </resource>
 </resources>
</build>

这将正确安装 mvn,但是当我打开输出 war 文件时,我希望文件 xmlgateway-context.xml 位于 /WEB-INF 目录中,但它最终位于文件夹 /WEB-INF/ 中类/WEB-INF。

我怎样才能把这个文件放到正确的地方。

或者,我可以将应用程序上下文放到不同的位置并在那里引用它。

【问题讨论】:

  • 我添加了maven-2标签,我猜你不介意。

标签: java maven-2 pom.xml


【解决方案1】:
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
            <webResources>
                <resource>
                    <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                    <filtering>true</filtering>
                    <targetPath>WEB-INF</targetPath>
                    <includes>
                        <include>**/xmlgateway-context.xml</include>
                     </includes>
                </resource>
            </webResources>
        </configuration>
    </plugin>
</plugins>

将以上内容添加到您的 pom.xml 中。 编辑: 只是为了解释上面的 conf 在做什么。添加后,mvn 将过滤src/main/webapp/WEB-INF 下的文件,特别是过滤包含的文件xmlgateway-context.xml,过滤后它将推送WEB-INF 文件夹中的文件(这就是target 标签的意思) .

如果有不清楚的地方更新。

【讨论】:

  • 只是要补充一点,2.4 版似乎不适用于此配置,我发现的最新并使用此设置的是 2.3,干杯。
  • 这与简单地将src/main/webapp 目录配置为过滤资源目录有什么不同?将它与maven-war-plugin 的配置相关联有什么好处?
【解决方案2】:

您应该通过maven war plugin 配置过滤:结帐these examples

【讨论】:

  • 如果我能感谢链接,我也会接受这一点,但@peakit 因我的剪切和粘贴懒惰而获胜。
【解决方案3】:

filteringDeploymentDescriptors 设置为 true

     <build>
        <finalName>web-project-name</finalName>
        <filters>
            <filter>src/main/resources/app.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                </configuration>
            </plugin>           
        </plugins>
    </build>

【讨论】:

    【解决方案4】:

    将 xmlgateway-context.xml 文件放到 src/main/webapp/WEB-INF 并配置如下:

    <build>
        <filters>
            <filter>src/main/filters/config-${targetenv}.properties</filter>
        </filters>
        <resources>
            <resource>
                    <filtering>true</filtering>
                    <directory>src/main/webapp/WEB-INF</directory>
            </resource>
        </resources>
    </build>
    

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 2020-05-25
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      相关资源
      最近更新 更多