2016-03-06 59 views
0

我正在使用SBT和Ivy/Artifactory構建兩個項目。配置SBT只解決來自常春藤庫的jar(而不是戰爭)

其中一個項目以JAR和WAR格式上傳到Artifactory。 另一個項目使用由另一個項目的SBT構建的JAR作爲依賴項。

我的問題是:當我添加Artifactory repo並構建第二個項目時,它成功找到了工件,但同時下載了JAR和WAR,而只需要JAR文件。

我查找有關該問題的文檔,但找不到任何特定於擴展名的文檔。我在SBT文檔頁面閱讀了分類器,但這似乎並不是我正在尋找的。

有什麼想法?

謝謝。

回答

1

事情是設置2個不同的常春藤配置,一個用於jar和一個用於戰爭。

然後在你的依賴項目,你可以這樣做:

「my.kikou.org」 %% 「dependeeProj」 % 「1.0」 % 「war」 

或者

「my.kikou.org」 %% 「dependeeProj」 % 「1.0」 % 「jar」 
dependee項目 dependeeProj SBT

所以文件,您可以設置按照這個常春藤配置:
http://www.scala-sbt.org/0.13/docs/Artifacts.html#Modifying+default+artifacts

目標是生成一個ivy.xml,其中包含2個配置(一個用於jar和一個用於war),並使工件(.jar和.war)成爲正確配置的一部分。生成的(由SBT)的ivy.xml應該是這個樣子:

<ivy-module version="1.0"> 
    ... 
    <configurations> 
     <conf name="jar" description="Lib as a Jar"/> 
     <conf name="war" description="Lib as a War"/> 
    </configurations> 
    <publications> 
     <artifact name="dependeeProj-jar" type="jar" conf="jar" ext="jar"/> 
     <artifact name="dependeeProj-war" type="war" conf="war" ext="war"/> 
    </publications> 
    ... 
</ivy-module> 

乾杯

+0

瓊你好。謝謝回覆。當你談論依賴關係和談論依賴項目時,我不確定我是否明白。我需要兩個常春藤配置?目前在我的本地常春藤回購協議中,依賴關係有兩個目錄,一個是罐子的罐子,另一個是戰爭的「戰爭」。如果我在依賴項目的build.sbt中使用'%「jar」'嘗試,則會出現錯誤,指出配置不存在。 – Phil

+1

我編輯了答案。你在依賴項目中做了什麼就是你需要做的。現在,您需要在dependee項目中執行一些更復雜的工作來生成具有2個配置的ivy.xml,並使每個構件成爲正確配置的一部分。不幸的是,這是我從未親自做過的事情,但希望上面的鏈接能讓你走上正確的道路。隨時編輯我的答案,當你得到那個權利。 – Joan