分享

java – Maven有办法将依赖版本作为属性吗?

 印度阿三17 2019-10-07

我正在使用BOM将其他项目中的依赖项导入到我的中,我需要一种方法来引用已在所述BOM中声明的依赖项版本.到目前为止,我已尝试将依赖项版本列为BOM中的属性,但此方法失败,因为属性未导入BOM.

我已经看到Dependency Plugin的dependency:properties目标几乎完全符合我的需要,但我没有给我一个完整的工件路径,而是需要将版本作为属性.有什么东西可以给我一个解决的工件的版本作为属性?

更新 – ‘为什么不使用父母pom?’

我经常发现自己在应用程序服务器环境中工作,其中提供的依赖项是用BOM工件指定的(因为它似乎已经成为分配相互关联的工件组的一种常见/标准方式,即widlfly).因此,我想将BOM视为事实的唯一来源.执行类似于已经在BOM中定义的依赖版本属性的操作的想法似乎不正确.

如果我要在父pom中定义镜像应用服务器环境的属性,我现在不得不担心保持父pom属性和BOM属性同步 – 为什么甚至在那时都有BOM?

这些信息已经在依赖树上提供了,这只是暴露它的问题……

解决方法:

找不到任何现有的maven或插件功能,所以我将旧的dependencypath-maven-plugin分叉并将其更改为使用版本.现在我可以插入这样的插件:

<build>
   .
   .
    <plugins>
        .
        .
        <plugin>
            <groupId>io.reformanda.semper</groupId>
            <artifactId>dependencyversion-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
                <execution>
                    <id>set-all</id>
                    <goals>
                        <goal>set-version</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

并访问如下属性:

groupId:artifactId:type[:classifier].version

I.E.

io.undertow:undertow-core:jar.version=1.3.15.Final

查看README以获取有关如何使用该插件的更多信息.它可用@ Maven Central

<dependency>
    <groupId>io.reformanda.semper</groupId>
    <artifactId>dependencyversion-maven-plugin</artifactId>
    <version>1.0.0</version>
</dependency>

…插件一直向下……

来源:https://www./content-1-492251.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约