Maven 如何在主POM和子POM上引用属性文件';s
我有一个主POM文件,它定义了两个概要文件:QA和Production。它使用properties maven插件设置一些变量,wildfly maven插件随后使用这些变量将包部署到web服务器 大概是这样的: [波姆大师]Maven 如何在主POM和子POM上引用属性文件';s,maven,maven-profiles,Maven,Maven Profiles,我有一个主POM文件,它定义了两个概要文件:QA和Production。它使用properties maven插件设置一些变量,wildfly maven插件随后使用这些变量将包部署到web服务器 大概是这样的: [波姆大师] <profile> <id>qa</id> <build> <plugins> <plugin>
<profile>
<id>qa</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>../build-qa.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
质量保证
org.codehaus.mojo
属性maven插件
1.0.0
初始化
读取项目属性
../build-qa.properties
关于儿童POM:
<parent>
<groupId>fhng.apps</groupId>
<artifactId>fhng-build-all</artifactId>
<version>1.0</version>
</parent>
(...)
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.1.0.Alpha11</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<hostname>${wildfly.server}</hostname>
<port>${wildfly.port}</port>
<username>${wildfly.username}</username>
<password>${wildfly.password}</password>
<filename>myapp.war</filename>
</configuration>
</plugin>
fhng.apps
fhng构建所有
1
(...)
org.wildfly.plugins
wildfly maven插件
1.1.0.11
安装
部署
${wildfly.server}
${wildfly.port}
${wildfly.username}
${wildfly.password}
myapp.war
主POM位于项目根目录上,每个特定的web应用程序位于子文件夹上。如果我从每个特定的项目文件夹运行mvn install,这将起作用。我非常想从主pom文件夹运行“mvn-Pqa干净安装”。但是它失败了,因为主pom引用..\build-qa.properties,该属性在每个项目中都有效,但在父目录中显然无效
哪里有办法解决这个问题?是否可以引用相对于主POM文件夹的文件,而不考虑构建了哪个特定POM?我理解这种方法打破了maven的前提,即父包不一定存在于我们的工作目录中
作为替代方案,是否有方法将属性文件引用为父包的工件?那么maven能够从repo中获得父包并在其中使用一个文件
我也会接受一种方法,在父pom上“跳过”ou“禁用”初始化/编译/安装阶段,这样它就不会尝试读取.properties文件
谢谢大家! 如果在根文件夹中放置目录
.mvn/
,则可以通过${maven.multiModuleProjectDirectory}
一、本案:
<file>${maven.multiModuleProjectDirectory}/build-qa.properties</file>
${maven.multiModuleProjectDirectory}/build-qa.properties
参考:
另外,请记住,空文件夹不会提交到git您似乎使用了大约4个属性。为什么您更喜欢配置文件
qa
中的外部文件而不是直接定义?因为我不想要源代码管理上的Wildfly管理接口的生产凭据。我希望在调用maven之前创建具有生产凭据的属性文件。您可以将凭据写入环境变量并通过${env.wildfly.password}