2016-12-07 60 views
0

問題:我的軟件使用的庫是每個開發人員(和用戶)安裝在不同位置的庫。在pom.xml之外指定systemPath依賴關係

pom.xml以下工作:

<project ...> 
    ... 
    <dependencies> 
     <dependency> 
      <groupId>myGroup</groupId> 
      <artifactId>myName</artifactId> 
      <version>1.2.3</version> 
      <scope>system</scope> 
      <systemPath>C:\...\....jar</systemPath> 
     </dependency> 
    </dependencies> 
</project> 

但是,當我檢查到源代碼控制這一點,每個人誰需要開發商去改變它,有可能改變pom.xml,因此具有忽略它在每次提交後或如果他必須改變pom.xml中的其他任何內容(例如添加其他依賴項),則部分提交。

  1. 使用性能沒有幫助,它只是把問題移到到pom.xml內的另一個位置。

  2. 使用屬性和從外部文件中讀取它(屬性 - 行家-插件)似乎不工作,因爲該插件被稱爲的例如的相關性檢查月蝕:Dynamically adding a Maven dependency from a property

  3. 使用環境變量${env.MY_VARIABLE}似乎沒有工作,要麼:[ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45

如何解決任何想法?

+0

你會在錯誤的方向。 '系統'是你應該很可能不會使用的東西,並且有一天會被刪除。請參閱http://stackoverflow.com/questions/364114/can-i-add-jars-to-maven-2-build-classpath-without-installing-them以獲得正確的方法。 – Tunaki

+0

這不是我的jar,所以我不能將其與我的應用程序分發。該jar受到嚴格保護,因此我無法將其添加到本地存儲庫,對其進行處理,甚至將其移動 - 它必須坐在鍵盤前人員安裝的位置。 我沒有看到任何方式沒有'系統'如何解決。或者有沒有在我沒有得到的鏈接頁面上? – Bowi

+0

*該jar受到嚴格保護,因此我無法將其添加到本地存儲庫*爲什麼不?現在您的本地倉庫中可能有數千個JAR不是您的,而是從其他Maven倉庫下載的。這個特定的一個在遠程倉庫中不可用,但這並不意味着您無法安裝它。 – Tunaki

回答

0
+0

(複製我對@ Tunaki評論的回覆) 這不是我的jar,所以我不能將它與我的應用程序分發。該jar受到嚴格保護,因此我無法將其添加到本地存儲庫,對其進行處理,甚至將其移動 - 它必須坐在鍵盤前人員安裝的位置。 – Bowi