【问题标题】:Maven filtering - replacement of variablesMaven过滤 - 替换变量
【发布时间】:2021-10-24 17:19:33
【问题描述】:

我有一个 maven 项目,它生成一个 jar 文件作为 web 项目。基于 Maven,我包括一个独立的 Tomcat。在 jar 文件中,实际上有一个 war-file,其中包含我的应用程序。

此应用程序在 src/main/config(或任何类似路径)中包含一个“version.txt”,最终包含在 war 文件中。

这个 version.txt 看起来像:

version: ${project.version}

我想,maven 应该用 pom.xml 中的正确版本替换变量。 在我的 pom.xml 中,我包含了:

  <build>
    <resources>
      <resource>
        <directory>src/main/config</directory>
          <filtering>true</filtering>
            <includes>
              <include>**/version.txt</include>
            </includes>
          </resource>
        <resource>
      <resources>
  </build>

那么有什么方法可以在 (Tomcat)jar 文件中的 war 文件中包含这个 version.txt 和工作替换?

附录:

我的文件层次结构如下:

jar-file
-- ...
--war-file
---- ...
----version.txt

【问题讨论】:

  • 为什么要把version.txt放到一个单独的目录src/main/config中而不使用src/main/resources这样的默认位置?

标签: java maven tomcat tomcat7


【解决方案1】:

我建议你使用 maven-war-plugin。

https://maven.apache.org/plugins/maven-war-plugin/usage.html

它需要一定的目录布局,并且在示例中清楚地展示了如何过滤(将 maven 变量替换为 web 资源)

https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

如果此解决方案不够完善,则应稍后提出基于此的更具体问题。

【讨论】:

    【解决方案2】:

    感谢您的建议。不,没有 maven-war-plugin,但我已将其包含在内,并且根据说明,它可以工作。

    短解:

    在同一级别添加了一个资源目录,如pom.xml 并包含version.txt

    添加到pom.xml并激活过滤:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.1</version>
            <configuration>
                <webResources>
                    <resource>
                        <filtering>true</filtering>
                        <directory>externalresources</directory>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
    

    【讨论】:

    • 很高兴听到这个消息。 Maven 有一组非凡的插件,可以让您无需弄清楚如何单独完成每一步。有时间的时候看看其他一些插件。我会推荐“站点”插件,然后是各种站点报告插件,因为有很多报告可以帮助您在错误影响您正在运行的程序之前发现它们。
    猜你喜欢
    • 2012-01-13
    • 2015-06-10
    • 2017-10-03
    • 1970-01-01
    • 2016-08-05
    • 2022-06-15
    • 2011-01-19
    • 1970-01-01
    • 2014-07-28
    相关资源
    最近更新 更多