配置文件特定属性未传递给模块

时间:2016-08-26 14:38:55

标签: maven maven-profiles

我在父profile中定义了几个pom,并希望为每个模块定义属性。以下是我的个人资料部分:

<profile>
    <id>profile1</id>
    <properties>
        <prop1>val1.1</prop1>
        <prop2>val1.2</prop2>
    </properties>
    <modules>
        <module>warmodule1</module>
        <module>warmodule2</module>
    </modules>
</profile>
<profile>
    <id>profile2</id>
    <properties>
        <prop1>val2.1</prop1>
        <prop2>val2.2</prop2>
    </properties>
    <modules>
        <module>warmodule3</module>
    </modules>
</profile>

我运行mvn package -P profile1来构建warmodule1和warmodule1,分别使用值为val1.1和val1.2的prop1和prop2以及mvn package -P profile2构建warmodule3,其中prop1和prop2的值为val2.2和val2。分别为2。

它适用于profile2,但在profile1中,属性仅传递给列出的第一个模块(warmodule1),而warmodule1则为空字符串。

当我单独运行每个模块并从命令行传递属性(例如mvn clean package -Dprop1=val1.1 -Dprop2-val1.2)时,它工作正常,而不是当我在父pom中设置配置文件定义内的属性并运行父构建时。 / p>

如何在第一个配置文件中使用配置文件特定属性而不仅仅是列出的第一个模块中影响这两个模块?

1 个答案:

答案 0 :(得分:0)

属性没有从父 <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/content_layout" > <ImageView android:id="@+id/chanImage" android:layout_width="fill_parent" android:layout_height="250dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:scaleType="centerCrop" android:adjustViewBounds="true" android:src="@drawable/whiteImage"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="200dp" android:layout_marginLeft="20dp" android:textSize="20sp" android:textStyle="normal" android:text="WHITE TEXT" android:textColor="@color/white" android:fontFamily="sans-serif-condensed" android:ellipsize="end"/> </RelativeLayout> 传递到warmodule2,因为warmodule2与warmodule1不同,没有定义父级:

pom

当我将它添加到warmodule2的pom时,参数成功传递。

作为旁注,我一开始并没有写这些poms,所以第二个模块没有声明父母,这是别人的遗漏。