2015-10-16 118 views
1

我有第三方依賴關係jar需要安裝以構建我的項目。我知道這可以使用安裝命令來完成,但我需要的是在構建項目時進行安裝。所以不需要手動安裝jar,有沒有辦法做到這一點?Maven在構建過程中安裝第三方依賴關係

我發現像這樣安裝插件

<configuration> 
<executable>mvn</executable> 
<arguments> 
    <argument>install:install-file</argument> 
    <argument>-Dfile=${basedir}\src\main\resources\EVIPSoapServer.jar</argument> 
    <argument>-DgroupId=com.company</argument> 
    <argument>-DartifactId=EVIPSoapServer</argument> 
    <argument>-Dversion=1.0.0</argument> 
    <argument>-Dpackaging=jar</argument> 
</arguments> 

是否有安裝依賴的方式?

+1

是否有任何理由爲什麼你不能依賴這個離線安裝,然後你的構建過程中使用它的解決方案? –

+1

@TimBiegeleisen它可以完成,但我只是爲了維護的原因。因此,安裝依賴關係的手動過程可以被跳過,當構建項目時,所有的jar都將被自動安裝。是否有可能在maven pom配置中做到這一點? –

+0

[Maven documentation](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)在這裏似乎沒有任何幫助。 –

回答

1

更好的方法是創建一個多模塊maven項目,將第三方庫作爲一個模塊,將項目作爲另一個模塊。在根pom.xml中,您可以編寫構建序列,並在安裝項目之前負責安裝第三方jar。

這裏是一個教程,你Link 1

編輯

從評論,好像你只需要依賴的jar可用在安裝。爲此,最好的方法是使用系統範圍的依賴關係,將第三方jar保存在maven項目結構本身的文件夾中。示例如下。閱讀link。這樣,maven就不會檢查jar是否存在於本地或遠程的maven倉庫中。

<dependency> 
     <groupId>javax.sql</groupId> 
     <artifactId>jdbc-stdext</artifactId> 
     <version>2.0</version> 
     <scope>system</scope> 
     <systemPath>${your.path.here}</systemPath> 
    </dependency> 
+0

嗯,我只有罐子,是否有可能將罐子添加爲模塊? –

+1

編輯答案。您可以使用系統範圍的依賴關係。確保該jar在你的項目中。 lib中的某處。 – aksappy

+0

我試過這個選項,在這個改變後我的項目編譯好了。但在運行時拋出異常,我得到了NoClassDefFoundError。我在這裏做錯了什麼? –