Maven - 在编译时查询信息依赖项

时间:2016-04-14 06:49:53

标签: java maven pom.xml

我正在将Maven用于我们的一个项目。我们有一个编译时插件jasperreports-plugin,它是使用jasperreports 6.1.1构建的。但是,我们有另一个使用jasper-including-artifact jasperreports的依赖项(我们控制)6.1.0。这需要我们在jasperreports的部分中手动覆盖jasperreports-plugin的版本,以便它们匹配。 POM最终看起来像是什么:

<dependencies>
    <dependency>
        <groupId>com.my.application</groupId>
        <artifactId>jasper-including-artifact</artifactId>
        <version>4.1.1</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.alexnederlof</groupId>
            <artifactId>jasperreports-plugin</artifactId>
            <version>2.2</version>
            <dependencies>
                <dependency>
                    <groupId>net.sf.jasperreports</groupId>
                    <artifactId>jasperreports</artifactId>
                    <version>6.1.0</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

这是有效的,但为了使其更易于维护,我们理想地希望能够从jasper-including-artifact依赖项读取值并使用它来设置{{1}中覆盖依赖项的版本},所以当jasperreports-plugin中的jasperreports版本发生变化时,我们不需要对POM进行手动修改。所以这样的事情(显然是假的):

jasper-including-artifact

请注意,它不是我们感兴趣的<dependencies> <dependency> <groupId>com.my.application</groupId> <artifactId>jasper-including-artifact</artifactId> <version>4.1.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.alexnederlof</groupId> <artifactId>jasperreports-plugin</artifactId> <version>2.2</version> <dependencies> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>${jasper-including-artifact.jasper-version}</version> </dependency> </dependencies> </plugin> </plugins> </build> 版本,而是其中包含的jasper-including-artifact版本。我们控制jasperreports,以便我们可以根据需要对POM进行更改。

这是Maven提供的功能吗?

0 个答案:

没有答案