我有一个pom.xml,它充当子pom层次结构的根POM,每个子pom负责部署它自己的对应二进制工件。
我本来想让根POM存储这些子pom的列表,以便我可以对子POM进行一些预处理。这是一个房间pom.xml的示例:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>company.group1.project1</groupId>
<artifactId>assets</artifactId>
<version>0.4.1</version>
<packaging>pom</packaging>
<parent>
<groupId>company.shared</groupId>
<artifactId>repo-info-pom</artifactId>
<version>1.0.0</version>
</parent>
<deployArtifacts exportType="bin" srcType="txt">
<artifacts>
<artifact>
<artifactId>assetA</artifactId>
<groupId>company.group1.project1.assets</groupId>
<version>0.4.1</version>
<fileFolder>./assetA/</fileFolder>
</artifact>
<artifact>
<artifactId>assetB</artifactId>
<groupId>company.group1.project1.assets</groupId>
<version>0.4.1</version>
<fileFolder>./anotherFolder/assetB</fileFolder>
</artifact>
<artifact>
<artifactId>assetC</artifactId>
<groupId>company.group1.project1.assets</groupId>
<version>0.4.1</version>
<fileFolder>./yet/another/folder/assetC</fileFolder>
</artifact>
</artifacts>
</deployArtifacts>
</project>
授予POM自己的XSD,该XSD拒绝自定义标签,如果我尝试使用它,则会出现“格式错误的POM”错误。
我一直在寻找替代方案:
该标签不允许我添加目录信息,除非它是for when is system,我认为我不应该使用该信息,因为我希望root POM也能够引用最终来自存储库中的工件。
该列表仅引用本地项目中的工件,并且似乎不允许我附加诸如groupID或版本号之类的信息。
作为最后的选择,我正在考虑从根pom.xml删除列表,将其移至另一个xml,并让根pom.xml使用build-helper将这个新的xml附加为另一个工件-maven插件。
这是我第一次设置和配置Maven,所以我想知道还有哪些其他可行的选项。预先感谢您的任何反馈。
答案 0 :(得分:0)
看看https://maven.apache.org/pom.html#Aggregation似乎符合您的要求。这样就可以从根执行Maven并构建/部署其所有子级。