繁体   English   中英

如何使用属性激活Maven子模块中的配置文件?

How to activate a profile in a maven submodule using a property?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在Ubuntu 18.04上使用了Maven 3.6.0和OpenJDK8(也已在Alpine Linux上进行了测试)。

我在项目的根目录中有一个pom.xml ,其中包含我的子模块:

...
  <modules>
    <module>mysubmodule</module>
  </modules>
...

mysubmodule文件夹中, pom.xml具有要基于传递给mvn可执行文件的属性来激活的配置文件:

...
    <profile>
      <id>my-profile</id>
      <activation>
        <property>
          <name>activateMyProfile</name>
        </property>
      </activation>
      ...
    </profile>
...

然后,我执行mvn来开始构建,但是该配置文件从未被激活:

  • 如果我从项目的根目录运行mvn -DactivateMyProfile release:prepare ,则永远不会激活配置文件,也不会运行
  • 如果我从项目的根目录运行mvn release:prepare ,则永远不会运行配置文件。

我也尝试过相反的方法:

...
    <profile>
      <id>my-profile</id>
      <activation>
        <property>
          <name>!doNotActivateMyProfile</name>
        </property>
      </activation>
      ...
    </profile>
...
  • 如果我从项目的根目录运行mvn -DdoNotActivateMyProfile release:prepare ,则仍然执行配置文件
  • 如果我从项目的根目录运行mvn release:prepare ,也会执行配置文件

看起来mvn无法看到通过命令行传递的属性。 使用属性激活子模块中的配置文件的正确方法是什么?

1 个回复

当我使用Maven版本插件时,必须使用-Darguments参数传递参数。

例如,代替使用mvn -DactivateMyProfile release:prepare ,正确的调用是: mvn -Darguments=-DactivateMyProfile release:prepare

如果有多个参数,请使用mvn -Darguments="-DactivateMyProfile -DsomeOtherArg -DanotherArg=something" release:prepare

1 Maven:用于激活子模块中的配置文件的属性

我们有一个多模块maven项目,它有不同的平台可以运行,比如JBoss 4和JBoss 7.我们指定platform属性,然后将其用作工件的分类器,以及激活特定于平台的配置文件在子模块中,如: 在这些配置文件中,我们除其他外,还指定了提供的依赖项的版本。 例如,我们导入jboss父po ...

2 在Maven子模块中激活配置文件

我有以下多模块Maven项目: 在build-a和build-b中,我有一个名为myDeploy的配置文件。 现在,我想从命令行构建父项目,但是仅激活myDeploy例如。 子项目build-b 。 这可能吗? 或者,我可以将每个子项目的概要文件重命名为myDeploy-a和 ...

2012-12-28 12:47:32 0 365   maven
3 Maven:如果激活了配置文件,如何跳过子模块?

如果用户忽略指定构建配置文件,我希望Maven跳过构建所有子模块。 https://stackoverflow.com/a/8305931/14731解释了如果选择了配置文件,如何包括一个模块,但不包括如何排除它。 我知道我可以复制&lt;modules&gt;以构建到所有非默认配置文件 ...

4 Maven子模块配置文件

我有一个Maven多模块项目。 父级具有测试配置文件,并在配置文件本身中包含子级a。 如果我从子模块运行mvn -P test,将执行父级的“测试”配置文件吗? 如果我只想提供特定子模块的测试配置文件怎么办? ...

5 激活配置文件后在Maven子模块中添加依赖项

我有一个带有父pom.xml的项目,该项目定义了配置文件和debug配置文件: 我希望我的一个子模块在激活概要文件debug时添加依赖项jboss-seam-debug 。 我写了这个孩子pom.xml: 但这是行不通的,当我指定-Ddebug=true时,该依赖项不是依赖 ...

6 如何使用Maven继承子模块中的资源配置文件

我正在通过一本书来学习Struts时,遇到了Maven的组织问题,我想组织如下: 在目标资源中运行mvn package或resources:resources from child-a时,没有打包和继承自pom项目的struts.xml。 是否有添加任何解决方法或配置以实现此目的 ...

2017-10-15 09:26:34 0 62   maven
8 如何在子模块中停用maven配置文件?

我有一个在父pom.xml定义的配置文件,并由属性激活。 在子模块中,我需要取消激活它。 如何做到这一点(它是Maven 3)? PS。 据我所知,它不能合法地完成( MNG-4565 , MNG-5083 ),但有什么可行的解决方法? ...

9 排除maven配置文件中的子模块

我有一个maven多模块项目,如下所示。 我有一个我想在父级别执行的maven配置文件,module1和module2不应该执行此配置文件。 我该如何实现这一目标? ...

10 如何在依赖模块中激活Maven配置文件?

假设我有一个模块A:jar ,其依赖项的运行时和编译集取决于JDK版本。 在我的示例中,我有一个用于JAXB API的pre-jdk6-profile :在JDK 1.6.0之前,我需要包含jaxb-api-nnn.jar作为编译依赖项。 此配置文件位于A.pom 。 我还有模块B:w ...

2010-08-20 15:19:39 2 14731   maven-2
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM