![](/img/trans.png)
[英]Maven ssh deployment overrides artifacts in nexus - Can this be prevented?
[英]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.