2011-12-01 170 views
1

我對於常春藤來說是全新的,所以不要因爲比較基本的問題而被指責。Apache常春藤。 JbossAS,依賴關係以及關於常青藤的一些基本問題

我正在研究項目,該項目取決於jbossAS 4.0.3的某些庫。 準確地說 - 有jboss-4.0.3-scheduler,jboss-4.0.3-jboss-system,jboss-4.0.3-jboss,jboss-4.0.3-jbossall-client。所以我有一個合乎邏輯的問題 - 我如何指定常春藤在公共資料庫中找到它們?或者在這種情況下利用常春藤是錯誤的方向?

而另一個簡單的問題 - 例如,在過去,這些項目依賴於castor-0.9.7axis-1.3log4j - 常春藤依賴解析後 - 我有很多其他的罐子像activation-1.1.jaraxis-saaj-1.3.jarmail-1.4.jar等。所以過去只有3個罐子依賴 - 現在我有10個。我真的需要它們嗎?
什麼是確切知道我需要這個額外的罐子? (畢竟這個項目正在使用舊的config - 3個jar)。

如果我有一些神器(依賴項目)會怎麼樣。其他項目依賴於它,但我不希望傳遞依賴性得到解決。這只是感興趣的問題))

我這是怎麼啦拉動的依賴(從本地回購),和我想要的東西 - 從公共回購拉他們(如果可能):

  <ivy-module version="2.2"> 
      <info organisation="org.btl" module="BtlAppServer" revision="1.7"/> 
      <configurations defaultconfmapping="default"> 
      <conf name="compile" visibility="private"/> 
      <conf name="test" extends="compile" visibility="private"/> 
      <conf name="master" /> 
      <conf name="runtime" extends="compile" /> 
      <conf name="default" extends="master,runtime"/> 
      </configurations> 
      <publications> 
      <artifact conf="master"/> 
      </publications> 
      <dependencies> 
      <dependencies> 
     <dependency org="jboss" name="jboss" rev="4.0.3" conf="*->default" /> 
     <dependency org="jboss" name="jbossall-client" rev="4.0.3" 
         conf="*->default"/> 
     <dependency org="jboss" name="jboss-system" rev="4.0.3" conf="*->default"/> 
     <dependency org="jboss" name="scheduler-plugin" rev="4.0.3" 
         conf="*->default"/> 
     <dependency org="org.btl" name="BtlCommon" rev="latest.integration" /> 
    </dependencies> 
</ivy-module> 

setttings文件這個東西:

<ivysettings> 
     <settings defaultResolver="myChain"/> 
     <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/> 
     <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> 
     <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/> 
     <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> 
     <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/> 
     <resolvers> 
     <chain name="myChain" returnFirst="true"> 
     <resolver ref="local"/> 
     <!-- JBoss --> 
     <ibiblio name="jboss-nexus" m2compatible="true" 
       root="https://repository.jboss.org/nexus/content/groups/developer/" 
       pattern="[organisation]/[module]/[revision]/[artifact]-[revision](- 
       [classifier]).[ext]"/> 
     <ibiblio name="ibiblio" m2compatible="true" /> 
     </chain> 
     </resolvers> 
     <modules> 
     <module organisation='org.btl' resolver='local' /> 
     </modules> 
    </ivysettings> 

關於第二個問題文件的ivy.xml:

<ivy-module version="2.2"> 
    <info organisation="org.btl" module="BtlCommon" revision="1.7"/> 
    <configurations defaultconfmapping="default"> 
    <conf name="compile" visibility="private"/> 
    <conf name="test" extends="compile" visibility="private"/> 
    <conf name="master" /> 
    <conf name="runtime" extends="compile" /> 
    <conf name="default" extends="master,runtime"/> 
    </configurations> 
    <publications> 
    <!--get the artifact from our module name--> 
    <artifact conf="master"/> 
    </publications> 

    <dependencies> 
     <dependency org="axis" name="axis" rev="1.3" conf="*->default" /> 
     <dependency org="castor" name="castor" rev="0.9.7" conf="*->default" /> 
     <dependency org="log4j" name="log4j" rev="1.2.15" conf="*->default" > 
      <exclude org="com.sun.jdmk"/> 
      <exclude org="com.sun.jmx"/> 
      <exclude org="javax.jms"/> 
     </dependency> 
    </dependencies> 
</ivy-module> 

不知道這是否可以幫助一些)

+0

可以將[及物=假](https://ant.apache.org/ivy/history/latest-milestone/use/resolve.html)禁止傳遞依賴 – oers

+0

,你可以請張貼你的ivy.xml,也許你的ivysettings.xml? – oers

+0

jboss依賴 - 部分看起來不錯,這是正確的做法。我認爲它工作正常? – oers

回答

1

額外的罐子是由傳遞依賴產生的。這些可能不需要編譯您的項目,但需要在運行時。

如果實際需要它們取決於依賴關係本身和您對庫的使用情況。例如Mail.jar(Java Mail API)僅在需要發送郵件時才需要。

我認爲確實會很複雜,你不需要額外的庫(將來?)。如果您現在確定,您的程序在沒有它們的情況下運行,則可以將傳遞屬性設置爲依賴項。而且他們不會被下載。

<dependency org="axis" name="axis" rev="1.3" conf="*->default" transitive="false"/> 

我發現在java.net庫中的Jboss的依賴關係revision="4.2.2.GA"。似乎是最好的選擇。但我找不到調度程序。

ivysettings.xml

<ibiblio name="jboss-java.net" m2compatible="true" 
       root="http://download.java.net/maven/2/"/> 
+0

但如何處理jboss庫? – borzoni

+0

https://repository.jboss.org/nexus/content/groups/public/是jboss的存儲庫,它似乎沒有4.0.3版本。但它有4.2.2GA。你可能需要在這裏搜索:https://repository.jboss.org/nexus/,但我不知道更多。 – oers

+0

@ user998360我在download.java.net/maven/2上找到了這個庫,並且更新了它的答案 – oers