我让野生动物插入此属性以外部配置主机名,用户等
<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
时从文件中获取变量。我尝试了几种方法:
<properties>
并且它有效,但它位于pom.xml properties-maven-plugin
使用<phase>pre-clean</phase>
加载外部文件,但它不起作用。这里的问题是,最后我想创建一个具有不同配置文件的配置文件夹,即不同的用户,传递等。
关于如何做到这一点的任何想法?
答案 0 :(得分:3)
不要将properties-maven-plugin
绑定到pre-clean
阶段。将它绑定到initialize
阶段会更合适。来自lifecycle reference:
initialize
:初始化构建状态,例如设置属性或创建目录。
但问题是,当您直接调用mvn wildfly:deploy
时,不会运行此阶段。通过这样做,您告诉Maven只运行wildfly-maven-plugin
的执行。因此,它不会执行默认或清洁生命周期的任何内置阶段。
在您的情况下,您实际上需要设置这些属性,因此您需要运行initialize
阶段。为此,您可以使用mvn initialize wildfly:deploy
。这里使用initialize
的优点是默认生命周期的其余阶段不会运行,所以它会像以前一样快。
在Maven中,<filters>
有不同的用途:它们用于通过用特定值替换占位符来修改资源内容,这些值可以来自属性文件。因此<filters>
不适用于此用例,properties-maven-plugin
非常适合它。