Java 什么是Maven';蚂蚁的对应物';s<;房地产>&引用;前缀";属性

Java 什么是Maven';蚂蚁的对应物';s<;房地产>&引用;前缀";属性,java,maven,web-applications,ant,Java,Maven,Web Applications,Ant,我目前正在将Java Web项目构建过程从Ant迁移到Maven。当前进程使用多个特定于环境的属性文件,这些文件在WAR文件生成过程中根据提供给Ant的环境参数插入到主应用程序属性中 我无法在Maven中轻松复制的功能之一是属性文件前缀,即: <property name="some.env.file" value="someEnv.properties"/> <property file="${some.env.file}" prefix="some.env"/> s

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

我无法在Maven中轻松复制的功能之一是属性文件前缀,即:

<property name="some.env.file" value="someEnv.properties"/>
<property file="${some.env.file}" prefix="some.env"/>
some.property=${some.env.propertyOne}

Maven提供了pom.xml过滤器和过滤元素,以允许属性替换,但我无法找到一种方法,将特定于环境的前缀设置为build parameter,从而强制我为Maven构建过程复制属性文件。有没有办法在Maven中复制此Ant的原始功能?

我建议您使用Maven antrun插件加载属性文件,并使用前缀加载一个简单的Ant任务。并启用,以便ant定义的属性在maven中可用

在验证阶段(以及所有后续阶段),类似这样的操作将使ant定义的所有属性在maven构建中可用


maven antrun插件
1.7
验证
真的
跑
 <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>