当前位置: 首页 > 知识库问答 >
问题:

Maven:属性来激活子模块中的配置文件

唐煜
2023-03-14

我们有一个多模块maven项目,它有不同的平台可以运行,比如JBoss 4和JBoss 7。我们指定platform属性,然后将其用作工件的分类器,以及子模块中特定于平台的概要文件的激活,如:

<activation>
    <property>
        <name>platform</name>
        <value>jboss71x</value>
    </property>
</activation>

在这些概要文件中,我们指定了提供的依赖项的版本。例如,我们进口jboss父pom:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.as</groupId>
            <artifactId>jboss-as-parent</artifactId>
            <version>${dependencies.jbossas7.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

因此,当我们将属性指定为命令行参数(-Dplatform=jboss71x)时,它可以正常工作。

但是当属性在

[ERROR]     'dependencies.dependency.version' for commons-lang:commons-lang:jar is missing. @ line 46, column 21
[ERROR]     'dependencies.dependency.version' for commons-beanutils:commons-beanutils:jar is missing. @ line 56, column 21
[ERROR]     'dependencies.dependency.version' for commons-collections:commons-collections:jar is missing. @ line 61, column 21

maven版本是最新的: 3.2.1。

为什么会发生这种情况,以及如何在pom中指定此属性值。xml,不在命令行中?


共有1个答案

皇甫夕
2023-03-14

唉,你不可能做你想做的事。在Codehaus网站上找到这张便条之前,我花了几个小时尝试同样的事情:

注意:只有在Maven命令行上设置的属性才能激活配置文件。POM、父POM或其他配置文件中设置的属性无效。

基本上,轮廓激活发生在POM处理的早期,在所有属性被插值之前。本质上,这意味着激活配置文件的属性必须在构建的一开始就有一个定义的值——作为系统属性,在命令行上也是如此——因为配置文件激活发生在Maven处理任何

 类似资料:
  • 我在Ubuntu18.04上使用Maven 3.6.0和OpenJDK8(也在Alpine Linux上测试)。 我有一个在我的项目的根,包括我的子模块: 在文件夹中,有一个配置文件,我想根据传递给可执行文件的属性激活该配置文件: 然后我执行mvn开始构建,但配置文件从未激活: 如果我运行从我的项目的根,配置文件永远不会激活,永远不会运行 如果我运行从我的项目的根,配置文件永远不会运行。 我也尝试

  • Maven允许根据其运行的操作系统系列激活某些构建概要文件,例如: 这里有很多问题:那么的允许值是多少?它们区分大小写吗?Linux是吗?还是?等等。 我可以在哪里找到关于允许的值的信息-或者,至少,Maven从哪里获取这些值?环境变量?

  • 我有主pom。xml我喜欢从我正在使用的主mvn命令行cli更改,并更改: 参数仅在子模块中:module_y配置文件不module_x 这是我现在执行的命令: mvn清洁安装-Ddocker_build=构建 这是module_xmodule_y 简而言之,如何从主mvn运行中仅更改概要文件docker_内置模块_y中的属性值${docker.image}?

  • 但却被忽略了。 是否可以使用maven激活配置文件?

  • 我们的企业团队维护设置。xml文件,该文件定义了开发项目可以与Maven一起使用的各种概要文件,以构建其构件并将其安装到存储库中。我们期望Jenkins中的每个项目都会使用指定的所需概要文件定义一个-P参数。 这是我的问题:我需要使用的配置文件指定了一个通常对我的项目不可见的存储库(分阶段发布存储库),因此如果该配置文件处于活动状态,则无法依赖该存储库中的任何内容。我需要一种方法来激活我项目的文件

  • 我想在maven构建期间更改不同属性的值。Maven根据配置文件更改文件中的值,我也尝试了很多其他方法,但它从来都不起作用,我不明白为什么... 这是我的pom.xml 我有一个基于maven的项目,下面是src/main/resources下名为front-config.properties的文件: