2015-04-30 38 views
0

我使用Maven並擁有外部庫(soot)。我想用Maven將這個庫添加到我的項目中,然後打包成1個超級罐子。如何使用Maven添加外部jar庫,並且可以完整地(內部有外部jar)打包?

1)要添加庫,我可以使用本地回購(example)。

2)要獲得與依賴關係的jar,我可以使用陰影插件或其他。

但是在一起它不起作用,因爲在第一步依賴有範圍,並且這個依賴不會被添加到超級jar。

據我所知,我可以做mvn安裝,但它只會在我的機器上工作。

是否有可能實現我的初始目標?

+0

什麼樣的範圍?你有沒有試過https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html? – sodik

+0

mvn安裝工作正常,但我需要在每臺計算機上執行它 – watson94

+0

以及您使用的是什麼範圍?它應該工作正常 – sodik

回答

0

也許最簡單的解決方案是使用您的本地(公司?)存儲庫,如Artifactory

但是,如果不可行,您可以使用本地項目庫(如example)並將其保存在您的vcs中。

<repository> 
    <id>in-project</id> 
    <name>In Project Repo</name> 
    <url>file://${project.basedir}/libs</url> 
</repository> 

唯一的訣竅就是讓工件(罐)到本地資源庫:

mvn deploy:deploy-file -Dfile=fooLib.jar -DgroupId=com.test -DartifactId=fooLib -Dversion=1.0.1 -Dpackaging=jar -Durl=file://pathTo/libRepo -DrepositoryId=in-project 

而你只是用它像任何其他依賴

<dependency> 
     <groupId>com.test</groupId> 
     <artifactId>fooLib</artifactId> 
     <version>1.0.1</version> 
</dependency> 

絕對不使用systemscope,因爲這樣的依賴關係可以在系統中找到,因此不會與JAR捆綁在一起。