Maven 与蚂蚁<property>"prefix"属性对应的是什么?



我目前正在将Java Web项目的构建过程从Ant迁移到Maven。当前进程使用几个特定于环境的属性文件,这些文件根据提供给Ant的环境参数,在WAR文件生成期间插入到主应用程序属性中。

我在Maven中不容易复制的功能之一是属性文件前缀,即:
<property name="some.env.file" value="someEnv.properties"/>
<property file="${some.env.file}" prefix="some.env"/>

在文件的所有属性前加上"some "。,并且应用程序属性中的所有占位符都包含此前缀,即:

some.property=${some.env.propertyOne}

Maven提供了pom.xml过滤器和过滤元素,以允许属性替换,但是我无法找到一种方法,在一个文件中添加一个特定于环境的前缀作为构建参数,这迫使我为Maven构建过程复制属性文件。有没有办法在Maven中复制这个Ant的原始功能?

我建议您使用maven-antrun-plugin通过使用前缀的简单ant任务来加载属性文件。并且启用exportAntProperties,使ant定义的属性在maven中可用。

在验证阶段(以及随后的所有阶段),这样做会使maven构建中所有由ant定义的属性可用。

 <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <configuration>
          <exportAntProperties>true</exportAntProperties>
          <target>
            <property file="${some.env.file}" prefix="some.env"/>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

相关内容

  • 没有找到相关文章

最新更新