Apache常春藤。 JbossAS,依赖关系和常春藤的一些基本问题

时间:2011-12-01 05:40:26

标签: ant dependencies ivy

我是常春藤新手,所以不要因为相当基本的问题而受到指责。

我正在开发依赖于某些jbossAS 4.0.3库的项目。 准确地说 - 有jboss-4.0.3-scheduler,jboss-4.0.3-jboss-systemjboss-4.0.3-jbossjboss-4.0.3-jbossall-client。所以我有一个逻辑问题 - 如何指出常春藤在公共存储库中找到它们?或者说在这种情况下利用常春藤的方向是错误的?

另一个简单的问题 - 例如,在过去这个项目取决于castor-0.9.7axis-1.3log4j - 在常春藤依赖解决后 - 我有很多其他的像{ {1}},activation-1.1.jaraxis-saaj-1.3.jar等等。所以过去依赖只有3个罐子 - 现在我有10个。我真的需要它们吗? 什么是确定我需要这个额外的罐子的方法是什么? (毕竟该项目正在使用旧配置 - 3个罐子)。

如果我有一些神器(dependee项目)怎么办?其他项目取决于它,但我不希望解决传递依赖。这只是一个感兴趣的问题))

这就是我现在如何(从本地回购)和我想要的东西 - 从公共回购中提取它们(如果可能的话):

mail-1.4.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>

第二个问题的文件ivy.xml:

    <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>

不知道是否可以提供帮助

1 个答案:

答案 0 :(得分:1)

额外的罐子是由传递依赖性产生的。编译项目可能不需要这些,但在运行时需要这些。

如果确实需要它们取决于依赖本身和您对库的使用。例如,只有在需要发送邮件时才需要Mail.jar(Java Mail API)。

我认为真正确保您将不需要额外的库(将来?)会非常复杂。如果您现在确定,程序在没有它们的情况下运行,您只需将transitive属性设置为依赖项即可。它们不会被下载。

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

我在revision="4.2.2.GA"的{​​{3}}存储库中找到了Jboss依赖项。似乎是最好的选择。但我找不到调度程序。

ivysettings.xml

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