簡體   English   中英

使用自定義版本的工件而不是repo中的版本來構建Maven項目

[英]Building maven project with custom version of artifact instead of the one from repo

我是maven的新手,對nub問題感到抱歉: 需要使用我的工件版本而不是repo來構建maven項目

更詳細:我從github下載了jboss源碼,並使用maven 3進行了構建。太好了! 我需要對jboss依賴性進行一些更改,稱為“ picketbox”。 現在,它是jboss的“ pom.xml”中的工件。

我在my_picketbox.jar文件中構建了自己的picketbox版本。 我如何告訴Maven使用我的.jar而不是repo中的那個?

也許我丟失了一些東西,但是如果您顯式重命名了工件,那將只是在相關JBoss POM文件中用my_picketbox替換picketbox的問題。

<dependency>
    <groupId>...</groupId>
    <artifactId>my_picketbox</artifactId>
    <version>...</version>
</dependency>

當然,您可以通過mvn install來確保您的工件在本地倉庫中。

干杯,

我會使用maven-install插件安裝jar文件。

http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

首先,將您的Picketbox版本安裝到本地Maven存儲庫中。 如果您的自定義版本是Maven項目,則可以通過運行

mvn install

如果您的自定義Picketbox版本不是Maven項目,則將Jar本身安裝到本地Maven存儲庫中,如下所示:

mvn install:install-file -Dfile=my_picketbox.jar -DgroupId=org.picketbox -DartifactId=my_picketbox -Dversion=2.3 -Dpackaging=jar

然后通過將以下代碼片段添加到正在構建的JBoss項目的pom.xml文件中,來更改JBoss依賴的Picketbox的版本(用此代碼替換PocketBox上的現有依賴項):

<dependency>
    <groupId>org.picketbox</groupId>
    <artifactId>my_picketbox</artifactId>
    <version>2.3</version>
</dependency>
<dependency>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>x.x.x</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/xxxx.jar</systemPath>
</dependency>

這使您可以引用不在本地存儲的庫,而不是Maven Central的庫。

Maven采用POM文件中指定的內容; 請注意,包括您編寫的依賴項在內的POM可能會被深深地埋沒,甚至不被下載到的源中。

在項目樹中搜索有問題的工件,然后將其版本號替換為您的版本。 如果這樣做沒有幫助,請按照Nils在另一個答案中所述進行操作,但請記住以原始版本安裝工件(您可能必須先在本地存儲庫中找到它,然后將其刪除)。

暫無
暫無

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

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