Maven 在组装期间合并父pom和子pom

Maven 在组装期间合并父pom和子pom,maven,maven-assembly-plugin,Maven,Maven Assembly Plugin,我有一个多模块maven项目。我想组装每个子对象,以便在使用maven解压和执行它们时不依赖于父pom 汇编插件有没有一种方法可以“合并”父pom和子pom 原始项目: ├── pom.xml ├── README.md ├── module1 │   ├── assembly.xml │   ├── pom.xml │   ├── README.md │   └── src └── module2 ├── assembly.xml ├── pom.xml ├── REA

我有一个多模块maven项目。我想组装每个子对象,以便在使用maven解压和执行它们时不依赖于父pom

汇编插件有没有一种方法可以“合并”父pom和子pom

原始项目:

├── pom.xml
├── README.md
├── module1
│   ├── assembly.xml
│   ├── pom.xml
│   ├── README.md
│   └── src
└── module2
    ├── assembly.xml
    ├── pom.xml
    ├── README.md
    └── src
组装包(zip):

然后在my assembly.xml上,我只需添加生成的
.flatted pom.xml
,并将其重命名为pom.xml:

<files>
    <file>
        <source>.flattened-pom.xml</source>
        <destName>pom.xml</destName>
    </file>
</files> 

.platten-pom.xml
pom.xml

我想你想要像


它允许您将父POM“合并”到POM中

使您的
moduleX
成为多模块构建的一部分(在目录中添加
moduleX
,然后尝试在父级
pom.xml
中添加
moduleX
);将您想在
moduleX
中打包的所有模块定义为
moduleX
的依赖项,然后通过maven assembly插件创建zip/tar.gz等…我不理解
。组装每个子模块…
?模块已创建为
jar
war
,具体取决于您提供的打包方式?所有模块必须单独打包为压缩文件,彼此独立。每个压缩包的结构如上面所述。解压后,客户端只需执行
mvn测试
。什么类型的压缩文件?嗯..我不明白步骤
。客户端只需要做mvn测试
?您是创建库还是测试库?然后有人可以直接使用
jar
,而不需要进行补充压缩/压缩文件?真的很困惑你到底有什么问题?它们不是罐子。这些模块由使用maven执行的脚本组成。组装模块后,我们将其共享给客户机。您知道是否可以不展开变量吗?我通过使用
keep
选项找到了它。
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <id>flatten</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                        <configuration>
                            <flattenMode>bom</flattenMode>
                            <pomElements>
                                <build>keep</build>
                            </pomElements>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
<files>
    <file>
        <source>.flattened-pom.xml</source>
        <destName>pom.xml</destName>
    </file>
</files>