Апачский плющ.JbossAS, зависимости и некоторые основные вопросы по плющу - PullRequest
1 голос
/ 01 декабря 2011

Я совсем новичок в плюще, так что не вините меня за довольно элементарные вопросы.

Я работаю над проектом, который зависит от некоторых библиотек jbossAS 4.0.3. Чтобы точно сказать - есть jboss-4.0.3-планировщик, jboss-4.0.3-jboss-system, jboss-4.0.3-jboss, jboss-4.0.3-jbossall-client. Итак, у меня есть логичный вопрос - как я могу указать плющу, чтобы найти их в публичном хранилище? Или это неправильное направление использования плюща в этой ситуации?

И еще один простой вопрос - например, в прошлом этот проект зависел от castor-0.9.7, axis-1.3 и log4j - после разрешения зависимости ivy - у меня было много других jar, таких как activation-1.1.jar, axis-saaj-1.3.jar mail-1.4.jar и т. Д. Так что в прошлом было только 3 банки в зависимостях - теперь у меня их 10. Мне они действительно нужны?
И как узнать наверняка, что мне нужно от этих дополнительных банок? (ведь проект работал со старым конфигом - 3 банки).

А что, если у меня есть какой-нибудь артефакт (зависимый проект). От этого зависит другой проект, но я не хочу, чтобы переходные зависимости были разрешены. Это только вопрос интереса))

Вот как я сейчас извлекаю зависимости (из локального репо), и что я хочу - вытащить их из публичного репо (если это возможно):

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

файл настроек для этого материала:

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

Не знаю, может ли это как-то помочь)

1 Ответ

1 голос
/ 01 декабря 2011

Дополнительные банки создаются переходными зависимостями.Они могут не понадобиться для компиляции вашего проекта, но необходимы во время выполнения.

Если они действительно необходимы, зависит от самой зависимости и вашего использования библиотеки.Например, Mail.jar ( Java Mail API ) необходим только для отправки почты.

Я думаю, будет действительно сложно убедиться, что вам не понадобятся дополнительные библиотеки (в будущем?).Если вы сейчас уверены, что ваша программа работает без них, вы можете просто установить переходный атрибут для зависимости.И они не будут загружены.

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

Я нашел зависимости Jboss в репозитории java.net для revision="4.2.2.GA".Кажется, лучший вариант.Но я не смог найти планировщик.

ivysettings.xml

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