2011-12-01 172 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