我在 base-pom 中定义了一个配置文件,其中使用属性由子pom 定义(部署位置为appserver-module)。该配置文件应在初始完整构建之后使用,因此可以继承到所有子节点。
问题是:这些属性如何/何时解决:进行初始完整构建或进行特定子模块的本地构建时?
<profile>
<id>quickdeploy</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${ear.path}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
${ear.path}
在子模块中定义......
答案 0 :(得分:0)
我刚尝试使用m2eclipse创建了两个工件。第一个是q4794952.base,它是一个简单的maven项目,其类型设置为 pom 。然后我创建了第二个工件(右键单击基础项目,New =&gt; Maven =&gt; Maven模块),它自动在基础工件中创建父标记和(子)模块。
当使用像上面的过程创建的模块结构时(或者在标签中已知模块的genereal中),子模块中的属性对“base”是已知的,并将在“full-Build”中解析(通过使用help:effective-pom和构建结果可以看出)。如果只构建子模块,它也会被解析,因为配置文件是从父pom获取的,属性是在(子)模块中设置的。
这是我的“basepom”:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>q4794952.base</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<profiles>
<profile>
<id>quickdeploy</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${ear.path}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<modules>
<module>q4794952.sub</module>
</modules>
</project>