如何访问maven多模块项目中另一个模块pom中定义的属性

时间:2014-08-26 06:42:54

标签: java maven pom.xml buildnumber-maven-plugin

在A.B.C的pom中,我将属性定义为abc,其中A B C是模块。现在我想在A.D.F模块的pom中访问该属性。

<properties>
<A.B.C>${buildNumber}</A.B.C>
</properties>

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.3</version>
            <executions>
                <execution>
                <id>buildnumber</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>create</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
            <timestampFormat>{0,date,dd-MM-yyyy HH:mm:ss}</timestampFormat>
            <doCheck>false</doCheck>
            <doUpdate>false</doUpdate>
            <providerImplementations>
                <svn>javasvn</svn>
            </providerImplementations>
            <revisiononscmfailure>

                    <!-- 71 Generate sequence build number based on: 72 build number and 
                        timestamp 73 -->

                    <format>Build: #{0} ({1,date})</format>

                    <items>

                        <item>buildNumber\d*</item>

                        <item>timestamp</item>

                    </items>

                </revisiononscmfailure>
        </configuration>
        <dependencies>
            <dependency>
                <groupId>com.google.code.maven-scm-provider-svnjava</groupId>
                <artifactId>maven-scm-provider-svnjava</artifactId>
                <version>2.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.tmatesoft.svnkit</groupId>
                <artifactId>svnkit</artifactId>
                <version>1.8.5</version>
            </dependency>
        </dependencies>

        </plugin>

我使用$ {A.B.C}作为A.D.F模块pom中依赖项的版本值。

<dependency>
        <groupId></groupId>
        <artifactId></artifactId>
        <version>${A.B.C}</version>
        <type>bundle</type>
    </dependency>

所以它给了我错误: bundle必须是有效版本,但是$ {A.B.C}。

编辑:

或者我可以在某种程度上使用C模块的版本,因为我定义了:

<version>${A.B.C}</version> 

2 个答案:

答案 0 :(得分:3)

这些模块是否共享父pom?看起来如果你想要它们链接起来,让它们通过父级共享属性是一个好主意,特别是如果你想在许多模块之间紧密耦合模块版本。

答案 1 :(得分:2)

在这个问题的答案中提供的解释以非常好的方式解释了它可以使用什么以及何时使用。

Reading Properties file from POM file in Maven