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模块_Maven_Profiles - Fatal编程技术网

使用概要文件控制构建哪些Maven模块

使用概要文件控制构建哪些Maven模块,maven,profiles,Maven,Profiles,我的maven POM.XML中有以下XML: 违约 真的 违约 !残废 m1 平方米 m3 x m1 我试图实现的是: 当我运行mvn安装时,我希望它能够构建m1、m2和m3项目 当我运行mvn install-Px时,我希望它只构建m1 我当前的问题是,对于上面的代码,选项2构建了所有m1、m2和m3。您可以从命令行禁用将运行默认值设置为true的maven配置文件,如下所示: mvn安装-p!默认值 注意,这需要Maven版本2.0.10。找到解决方案,首先定义'x'配置文件和'def

我的maven POM.XML中有以下XML:


违约
真的
违约
!残废
m1
平方米
m3
x
m1
我试图实现的是:

  • 当我运行mvn安装时,我希望它能够构建m1、m2和m3项目

  • 当我运行
    mvn install-Px
    时,我希望它只构建m1


  • 我当前的问题是,对于上面的代码,选项2构建了所有m1、m2和m3。

    您可以从命令行禁用将
    运行默认值设置为true的maven配置文件,如下所示:

    mvn安装-p!默认值


    注意,这需要Maven版本2.0.10。

    找到解决方案,首先定义'x'配置文件和'default',它工作正常(疯狂的Maven!!)。以下是最终结果:

       <profiles>
          <!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
          <profile>
             <id>x</id>
             <modules>
                <module>m1</module>
             </modules>
          </profile>
          <profile>
             <id>default</id>
             <activation>
                <activeByDefault>true</activeByDefault>
             </activation>
             <modules>
                <module>m1</module>
                <module>m2</module>
                <module>m3</module>
             </modules>
          </profile>
       </profiles>
    
    
    x
    m1
    违约
    真的
    m1
    平方米
    m3
    
    只需在-p之后添加一个空格,命令的sintax为

    mvn install -P x
    
    而且不像你用的那样

    mvn install -Px
    

    看看

    ,那太好了,但实际情况是我无法更改实际的maven命令。对于IDE,为了确定要导入到工作区的项目,它们使用类似“mvn install”的命令,第二个命令是一个云提供商为我运行的命令,我也不能更改。IOW,我想要一种方法来实现这一点,只需修改pom.xml。为什么要为默认配置文件设置激活属性?您说您希望它在默认情况下运行,但如果该属性没有值“disabled”,也可以这样做。从第一个配置文件中删除整个属性部分。我已经这样做了,但没有帮助。现在的问题是,在运行“mvn安装”时没有生成任何模块。我测试了完全相同的配置文件,没有
    属性
    部分,它可以按照您的需要工作。尝试使用以下命令:
    mvn-help:activeprofiles
    mvn-Px-help:activeprofiles
    。您使用的是哪个版本的maven?那应该没什么区别。在这里订购没有意义。。我在找类似的东西。。我可以调用任何配置文件,当我想构建所有模块时,我只是不给出配置文件,所以模块n序列被执行,我同意。我也遇到了同样的问题,但解决方案是,当我使用概要文件时,我必须从根目录中显式删除模块,并在中声明它们(从而创建默认概要文件)。我试着改变顺序来验证这个答案,但它没有改变任何东西@Galder Zamarreño你用的是什么maven版本?我想尝试和复制,以确保它不是一个maven错误。我的版本是3.5.0。如果有一个公共模块应该在所有模块之前构建呢?值得一提的是删除pom.xml中的任何
    声明,并且只使用
    中的声明。