Как мне объявить зависимость от jboss в SBT? - PullRequest
2 голосов
/ 28 июля 2011

У меня есть проект, который зависит от JBoss (в частности, 5.1.0.GA), и я пытался настроить этот проект с помощью SBT. Мне было интересно, есть ли способ сказать: «Этот проект зависит от версии X JBoss и всего, что с ней связано», или я должен объявлять каждую отдельную зависимость отдельно? Я надеюсь, что SBT загрузит все необходимые зависимости, необходимые для компиляции проекта.

Я довольно новичок в управлении зависимостями, поэтому любое направление приветствуется. Я пытаюсь сделать это с помощью SBT (который использует Ivy), но пример в Maven также приветствуется.

1 Ответ

2 голосов
/ 22 марта 2012

Вы должны объявлять каждую зависимость вручную, нет супер-помпы, которая включает все зависимости.

Это в основном очень сложно, потому что трудно определить, что именно нужно в некоторых случаях.

Хорошее начало - взять каждую библиотеку, которая также находится в jboss_home / lib, и начать оттуда сокращаться.

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

Это из моего собственного хранилища и может помочь вам начать.Но это никоим образом не является официальным и соответствует моим потребностям.

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://www.jayasoft.fr/org/ivyrep/ivy-doc.xsl"?>
<ivy-module version="1.0">
    <info 
        organisation="jboss"
        module="jboss"
        revision="5.1.0"
        status="release"
        publication="20110801120000"/>
    <configurations>
            <conf name="compile" visibility="public" />
            <conf name="client" visibility="public" extends="compile,mail,activation, aop"/>
            <conf name="server" visibility="public" extends="compile,servlet,jmx"/>
            <conf name="hibernate" visibility="public" />
            <conf name="activation" visibility="public" />
            <conf name="mail" visibility="public" />
            <conf name="servlet" visibility="public" />
            <conf name="jmx" visibility="public" />
                    <conf name="jmx-client" visibility="public" extends="client,jmx"/>
            <conf name="aop" visibility="public" />
            <conf name="javaee" visibility="public" />
            <conf name="ant" visibility="public" />
      <conf name="logging" visibility="public" />
    </configurations>
    <publications>
    <!-- from jbossall-client readme.txt -->
            <artifact name="commons-logging"      type="jar" conf="client"/>
        <artifact name="concurrent"      type="jar" conf="client"/>
        <artifact name="ejb3-persistence"      type="jar" conf="client"/>
        <artifact name="jboss-aop-client"      type="jar" conf="client"/>
        <artifact name="jboss-appclient"      type="jar" conf="client"/>
        <artifact name="jboss-aspect-jdk50-client"      type="jar" conf="client"/>
        <artifact name="jboss-client"      type="jar" conf="client,ant"/>
        <artifact name="jboss-common-core"      type="jar" conf="client,ant"/>
        <artifact name="jboss-ejb3-common-client"      type="jar" conf="client"/>
        <artifact name="jboss-ejb3-core-client"      type="jar" conf="client"/>
        <artifact name="jboss-ejb3-proxy-impl-client"      type="jar" conf="client"/>
        <artifact name="jboss-ejb3-proxy-spi-client"      type="jar" conf="client"/>
        <artifact name="jboss-ejb3-security-client"      type="jar" conf="client"/>
        <artifact name="jboss-j2se"      type="jar" conf="client"/>
        <artifact name="jboss-javaee"      type="jar" conf="client,javaee,ant"/>
        <artifact name="jboss-logging-log4j"      type="jar" conf="client"/>
        <artifact name="jboss-logging-spi"      type="jar" conf="client,ant"/>
        <artifact name="jboss-messaging-client"      type="jar" conf="client"/>
        <artifact name="jboss-remoting"      type="jar" conf="client"/>
        <artifact name="jboss-security-spi"      type="jar" conf="client,ant"/>
        <artifact name="jboss-serialization"      type="jar" conf="client,ant"/>
        <artifact name="jboss-system-client"      type="jar" conf="client"/>
        <artifact name="jboss-system-jmx-client"      type="jar" conf="client"/>
        <artifact name="jbosssx-as-client"      type="jar" conf="client,ant"/>
        <artifact name="jbosssx-client"      type="jar" conf="client,ant"/>
        <artifact name="jmx-client"      type="jar" conf="client,ant"/>
        <artifact name="jnp-client"      type="jar" conf="client"/>
        <artifact name="jboss-mdr"      type="jar" conf="client"/>
        <!--END from  jbossall-client readme.txt -->
        <!-- additional client-libs -->
        <artifact name="jbosscache-core"        type="jar" conf="client"/>
        <artifact name="trove"      type="jar" conf="client"/>
        <artifact name="javassist"      type="jar" conf="client,hibernate"/>
        <!-- END additional client-libs -->
        <artifact name="activation"         type="jar" conf="activation"/>
        <artifact name="mail"               type="jar" conf="mail"/>
        <artifact name="jboss-javaee"       type="jar" conf="compile"/>
        <artifact name="jboss-j2se"         type="jar" conf="compile"/>
        <artifact name="jboss-system-jmx"       type="jar" conf="compile,jmx"/>
        <artifact name="jbosscache-core"        type="jar" conf="compile"/>
        <artifact name="jboss-remoting"         type="jar" conf="compile,ant"/>
        <artifact name="jboss-kernel"       type="jar" conf="compile"/>
        <artifact name="jboss-logging-spi"      type="jar" conf="compile, logging"/>
        <artifact name="jboss-security-spi"         type="jar" conf="compile"/>
        <artifact name="jboss-ejb3-ext-api"         type="jar" conf="server"/>
        <artifact name="jboss-ejb3-core"      type="jar" conf="server"/>
        <artifact name="jboss-integration"      type="jar" conf="compile,ant"/>
        <artifact name="ejb3-persistence"   type="jar" conf="hibernate"/>
        <artifact name="hibernate-core"         type="jar" conf="hibernate"/>
        <artifact name="hibernate-entitymanager" type="jar" conf="hibernate"/>
        <artifact name="hibernate-annotations"  type="jar" conf="hibernate"/>
        <artifact name="hibernate-commons-annotations"  type="jar" conf="hibernate"/>
        <artifact name="jboss-system-client"    type="jar" conf="server"/>
        <artifact name="servlet-api"        type="jar" conf="servlet"/>
        <artifact name="jbosssx"            type="jar" conf="server"/>
        <artifact name="jmx-invoker-adaptor-client"     type="jar" conf="server,jmx,ant"/>
        <artifact name="antlr"  type="jar" conf="hibernate"/>       
        <artifact name="slf4j-api"  type="jar" conf="server, logging"/>
        <artifact name="slf4j-jboss-logging"    type="jar" conf="server, logging"/>
        <artifact name="jboss-aop-client"  type="jar" conf="aop"/>
        <artifact name="jbossjmx-ant"  type="jar" conf="ant"/>
    </publications>
</ivy-module>
...