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

如何仅显示发布版本的依赖项更新

微生令雪
2023-03-14

当我运行版本:显示依赖项更新时,它将显示我的依赖项的所有最新beta/里程碑版本。我更喜欢使用“release”包。

<代码>版本:使用最新版本谈论用最新版本“替换”。但是,我更喜欢手动更新版本。

我可以运行版本插件来报告我的依赖项和插件的最新“发布”版本吗?

我指的是mvnrepository上列出的包的“类型”。组织机构

共有2个答案

伯彦君
2023-03-14

也许我误解了一件事,但如果我使用mvn版本:显示-依赖-更新,它会产生这样的输出:

~/ws-git/test-project (two-module)$ mvn versions:display-dependency-updates
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Project : Parent
[INFO] Project : Mod-A
[INFO] Project : Mod-B
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Project : Parent 0.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:display-dependency-updates (default-cli) @ project-parent ---
[INFO] The following dependencies in Dependency Management have newer versions:
[INFO]   com.beust:jcommander .................................... 1.35 -> 1.55
[INFO]   com.google.guava:guava ................................ 16.0.1 -> 19.0
[INFO]   junit:junit ............................................. 4.11 -> 4.12
[INFO]   log4j:log4j ............................. 1.2.16 -> 1.2.17-atlassian-1
[INFO]   org.apache.logging.log4j:log4j-api ...................... 2.1 -> 2.6.1
[INFO]   org.apache.logging.log4j:log4j-core ..................... 2.1 -> 2.6.1
[INFO]   org.mockito:mockito-core ........................ 1.9.5 -> 2.0.78-beta
[INFO]   org.testng:testng .................................... 6.8.8 -> 6.9.12
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Project : Mod-A 0.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:display-dependency-updates (default-cli) @ mod-a ---
[INFO] The following dependencies in Dependency Management have newer versions:
[INFO]   com.beust:jcommander .................................... 1.35 -> 1.55
[INFO]   com.google.guava:guava ................................ 16.0.1 -> 19.0
[INFO]   junit:junit ............................................. 4.11 -> 4.12
[INFO]   log4j:log4j ............................. 1.2.16 -> 1.2.17-atlassian-1
[INFO]   org.apache.logging.log4j:log4j-api ...................... 2.1 -> 2.6.1
[INFO]   org.apache.logging.log4j:log4j-core ..................... 2.1 -> 2.6.1
[INFO]   org.mockito:mockito-core ........................ 1.9.5 -> 2.0.78-beta
[INFO]   org.testng:testng .................................... 6.8.8 -> 6.9.12
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Project : Mod-B 0.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:display-dependency-updates (default-cli) @ mod-b ---
[INFO] The following dependencies in Dependency Management have newer versions:
[INFO]   com.beust:jcommander .................................... 1.35 -> 1.55
[INFO]   com.google.guava:guava ................................ 16.0.1 -> 19.0
[INFO]   junit:junit ............................................. 4.11 -> 4.12
[INFO]   log4j:log4j ............................. 1.2.16 -> 1.2.17-atlassian-1
[INFO]   org.apache.logging.log4j:log4j-api ...................... 2.1 -> 2.6.1
[INFO]   org.apache.logging.log4j:log4j-core ..................... 2.1 -> 2.6.1
[INFO]   org.mockito:mockito-core ........................ 1.9.5 -> 2.0.78-beta
[INFO]   org.testng:testng .................................... 6.8.8 -> 6.9.12
[INFO]
[INFO] No dependencies in Dependencies have newer versions.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Project : Parent ................................... SUCCESS [  0.791 s]
[INFO] Project : Mod-A .................................... SUCCESS [  0.046 s]
[INFO] Project : Mod-B .................................... SUCCESS [  0.019 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.671 s
[INFO] Finished at: 2016-07-03T22:17:02+02:00
[INFO] Final Memory: 20M/439M
[INFO] ------------------------------------------------------------------------

在那里您可以看到jUnit: jUnit from 4.11 to 4.12等内容。此外,问题是您的依赖项的版本如何?

海灵均
2023-03-14

两个步骤

将rulesUri添加到插件配置中

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <rulesUri>file:///${project.basedir}/rules.xml</rulesUri>
    </configuration>
    <executions>
        <execution>
        <phase>compile</phase>
        <goals>
            <goal>display-dependency-updates</goal>
            <goal>display-plugin-updates</goal>
        </goals>
        </execution>
    </executions>
</plugin>

添加规则。xml文件到项目根目录。

<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" comparisonMethod="maven" xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0 http://mojo.codehaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd">
    <ignoreVersions>
        <!-- Ignore Alpha's, Beta's, release candidates and milestones -->
        <ignoreVersion type="regex">(?i).*Alpha(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*a(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*Beta(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*-B(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*RC(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*CR(?:-?\d+)?</ignoreVersion>
        <ignoreVersion type="regex">(?i).*M(?:-?\d+)?</ignoreVersion>
    </ignoreVersions>
    <rules>
    </rules>
</ruleset>

正则表达式过滤掉不稳定的版本。您还可以针对特定依赖项的规则,请参见:

http://blog.xebia.com/keeping-dependencies-up-to-date-in-maven/

https://gist.github.com/seahrh/b13f4f3d618ad7c817038e0bc124ef29

版本规则也将保留在插件的未来版本中。

 类似资料:
  • 我希望我的gradleGUI显示任务,而不仅仅是依赖项。看这些图片。我的gradle显示picture1(黑色背景),我希望它在picture2(白色背景)中显示树状。

  • MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?

  • 问题内容: 在Eclipse中,当我转到Maven Dependency Hierarchy页面时,得到的输出 指出什么冲突导致版本被省略: Eclipse Maven版本 但是,如果我使用dependency:tree,则将 其省略,而我只会看到实际使用的evrsions : And later on the actually referenced versions… Is there any

  • 我试图为我们的项目定义一个发布过程。 我能够使用maven发布插件来完成发布,但我必须手动更新所有内部快照依赖项,以在准备之前发布版本,然后在发布之后再次返回快照版本。 我使用了maven版本插件,它检测我的公司依赖项,即快照构建,并列出要使用的正确版本构建。 我尝试了maven发布插件,准备目标,并抱怨我的依赖项中的SNAPSHOT版本。 是否有一种方法可以将快照依赖项更新到最新发布的版本,然后

  • 我有一个使用SLF4J的项目,SLF4J也使用log4j1.2.17(默认情况下,没有在pom.xml中指定任何版本)。 嗨,我想升级Log4J版本到2.17.1,有关于如何操作的信息https://logging.apache.org/log4j/2.x/maven-artifacts.html 我在pom中添加了以下代码。xml文件 然后,当我检查Maven依赖项时,它会在我的项目中显示旧版本

  • 问题内容: 问题。 Gradle依赖管理使得: 没有简便的方法来检查依赖项更新的可用性(仅使用某些第三方插件,如ben-manes / gradle-versions-plugin)并下载更新以替换旧版本; 从远程存储库下载依赖项工件,然后将其存储在gradle缓存中,并在后续构建中重用;但是项目的成功编译必须不依赖于与Internet的连接,远程存储库的可用性以及这些存储库中特定版本的依赖项。