簡體   English   中英

如何阻止Nexus中的特定Maven工件

[英]How can specific Maven artifacts in Nexus be blocked

我們通過本地Nexus存儲庫使用Maven。 不幸的是,在查詢新版本時,我們得到了一些誤報:

commons-collections:commons-collections ............ 3.2.1 -> 20040616
org.hibernate:hibernate-entitymanager ..... 4.1.9.Final -> 4.3.0.Beta1

第一個是古老的版本,但命名方案不正確。 第二個實際上只是一個beta版本(我們通常不會得到這些版本,但是有些似乎會漏掉)。 現在的問題是:如何排除這些不是我們版本庫中的真正版本,而是來自Nexus所指的版本庫之一的版本?

我嘗試過路由 ,但是要么我弄錯了它,要么它無法阻止特定版本,只能阻止所有版本的完整工件。 我在文檔中看到了采購 ,但是看起來很復雜,我也不敢嘗試。

您可以在項目的POM(或某處的公司母公司)中配置versions-maven-plugin ,以使用規則文件告訴插件要忽略哪些版本。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <!-- some location that makes sense for your company/project -->
    <rulesUri>http://host.company.com/maven-config/maven-version2-rules.xml</rulesUri>
  </configuration>
</plugin>

示例規則文件如下所示。 我的忽略了commons-logging插件的“ 99.0-does-not-exist存在”版本。

<ruleset xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     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">
  <rules>
    <rule groupId="commons-logging" artifactId="commons-logging">
      <ignoreVersions>
        <ignoreVersion>99.0-does-not-exist</ignoreVersion>
      </ignoreVersions>
    </rule>
  </rules>
</ruleset>

您可以添加配置以全局地忽略其他版本,而不是像我在此處那樣按每個工件進行配置,並且也可以使用正則表達式。 插件文檔中提供了更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM