【问题标题】:Get maven properties from external configuration file从外部配置文件获取 Maven 属性
【发布时间】:2017-01-24 12:37:36
【问题描述】:

我有这个属性的wildfly插件来外部配置主机名、用户等。

<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>1.0.0.Final</version>
    <configuration>
        <hostname>${wildfly.hostname}</hostname>
        <port>${wildfly.port}</port>
        <username>${wildfly.username}</username>
        <password>${wildfly.password}</password>
    </configuration>
    <executions>
        <execution>
            <!-- <phase>package</phase> -->
            <!-- <goals> -->
            <!-- <goal>deploy</goal> -->
            <!-- </goals> -->
        </execution>
    </executions>
</plugin>

然后我创建了一个带有属性的文件 (file.properties)

wildfly.hostname=127.0.0.1
wildfly.port=19990
wildfly.username=user
wildfly.password=pass

我希望在调用mvn wildfly:deploy 时从文件中获取变量。我尝试了几种方法:

  1. 使用&lt;properties&gt;,它可以工作,但它在 pom.xml 中
  2. 使用properties-maven-plugin 加载外部文件使用&lt;phase&gt;pre-clean&lt;/phase&gt; 但不起作用。

这里的问题是最后我想创建一个配置文件夹不同的配置文件,即不同的用户,通行证等。

知道如何做到这一点吗?

【问题讨论】:

  • 你为什么使用&lt;phase&gt;pre-clean&lt;/phase&gt;?使用&lt;phase&gt;initialize&lt;/phase&gt;
  • 我也用过,还是不行
  • 是的,你需要调用mvn initialize wildfly:deploy,否则,阶段将不会运行。只会调用执行wildfly:deploy
  • 谢谢你成功了。有用!!顺便说一句,您知道不使用properties-maven-plugin 是否可以达到同样的效果?我的意思是使用&lt;filters&gt;

标签: maven properties-file


【解决方案1】:

不要将properties-maven-plugin 绑定到pre-clean 阶段。将其绑定到initialize 阶段会更合适。来自lifecycle reference

initialize:初始化构建状态,例如设置属性或创建目录。

但是,问题是当您直接调用mvn wildfly:deploy 时,此阶段将不会运行。通过这样做,您告诉 Maven 只运行wildfly-maven-plugin 的执行。因此,它不会执行默认或干净生命周期的任何内置阶段。

在您的情况下,您实际上需要设置这些属性,因此您需要运行 initialize 阶段。为此,您可以使用mvn initialize wildfly:deploy。在这里使用initialize 的好处是默认生命周期的其余阶段不会运行,所以它会和以前一样快。

在 Maven 中,&lt;filters&gt; 有不同的用途:它们用于通过将占位符替换为可以来自属性文件的特定值来修改资源的内容。所以&lt;filters&gt; 不适合这个用例,properties-maven-plugin 非常适合它。

【讨论】:

  • 能否请您提供一个示例,说明我应该如何配置这些东西以使用persistence.xml 中的属性?我应该包括过滤吗?并运行 mvn 有哪些选项?
  • @jlanza persistence.xml 是一个项目资源,所以你需要过滤是的。您可以查看maven.apache.org/plugins/maven-resources-plugin/examples/… 以查看过滤示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 2017-08-18
  • 2010-10-25
相关资源
最近更新 更多