Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在父pom中多次构建多个模块_Maven_Build_Maven 3_Build Process - Fatal编程技术网

Maven 在父pom中多次构建多个模块

Maven 在父pom中多次构建多个模块,maven,build,maven-3,build-process,Maven,Build,Maven 3,Build Process,有几个应用程序需要从许多模块中构建和打包 在父pom中,我使用配置文件调用不同应用程序的构建 root parent/ pom.xml moduleA/ pom.xml moduleB/ pom.xml moduleC/ pom.xml 例如,应用程序“profile-1”需要构建现有模块的子集,并将其作为一个tar球组合在一起。 tar将包含几个jar和从子模块的target/中提取的不同配置文件 我正在使用一个使用execmaven插

有几个应用程序需要从许多模块中构建和打包

在父pom中,我使用配置文件调用不同应用程序的构建

root
  parent/
     pom.xml
  moduleA/
     pom.xml
  moduleB/
     pom.xml
  moduleC/
     pom.xml
例如,应用程序“profile-1”需要构建现有模块的子集,并将其作为一个tar球组合在一起。 tar将包含几个jar和从子模块的target/中提取的不同配置文件


我正在使用一个使用execmaven插件调用的shell脚本来组合tar

我面临的问题是,在一个应用程序中,我需要多次构建相同的模块,但使用不同的maven参数

最好的方法是什么

<profiles>
        <profile>
            <id>profile-1</id>
            <modules>
                <module>../moduleA</module>
                <module>../moduleB</module>
                <!-- <module>../moduleC</module> -->
            </modules>
            <properties>
                <global.version>0.0.1-SNAPSHOT</global.version>
            </properties>
            <build>
                <!-- use maven exec plugin to run a shell script which generates the tar ball picking jars and config files from different modules target dirs -->
                <plugins>
                </plugins>
            </build>
        <profile>
</profiles>

概要-1
../moduleA
../moduleB
0.0.1-快照
一个示例子模块pom

<groupId>com.test</groupId>
    <artifactId>moduleC</artifactId>
    <packaging>bundle</packaging>
    <version>${global.version}</version>

    <name>test :: ${project.artifactId} :: ${name} </name>


    <parent>
      <groupId>com.test</groupId>
      <artifactId>parent</artifactId>
      <version>${global.version}</version>
      <relativePath>../parent</relativePath>
    </parent>
com.test
模数
捆
${global.version}
测试:${project.artifactId}:${name}
com.test
父母亲
${global.version}
../parent
我尝试过的事情:
1) 我是否可以将多个配置文件分开,并将它们作为-Pprofile-1、profile-2调用
这对我不起作用,但我会做错什么

2) 使用另一个具有mvn命令行的shell脚本以不同的方式构建moduleC。
-即使我传入了“-Dglobal_版本”,从mvn命令行运行的moduleC似乎在存储库中找不到父级

在构建应用程序之前,我尝试执行“-N”构建以将父pom放入存储库,但没有起到任何作用。

最好的方法是:

mvn clean install --projects moduleA, moduleB
mvn clean install --projects moduleB, moduleC

不能使用maven()运行多个版本。

“我正在使用使用execmaven插件调用的shell脚本来组合tar。”。这是一个很大的迹象,表明你在某个地方做错了什么。程序集通常使用
maven程序集插件
完成。为什么你有那么多个人资料?这也是你构建中的一种味道。我可以使用汇编插件。我需要使用不同的子模块组合构建和打包不同的应用程序。但是如何通过传入不同的maven参数多次构建同一个模块呢?