ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Loehr, Ruel" <rlo...@pointserve.com>
Subject RE: Configurations really hard to understand
Date Mon, 02 Jun 2008 19:38:55 GMT
Shouldn't the servlet api just be a compile time need?   I would try doing this:

//i make the servlet api a compile time dependency.   At runtime, your servlet container should
have it
//when you publish this module, you would need to publish the runtime configuration at minimum.
//i haven't used the defaultconfmapping before as an fyi, not sure what behavior that will
change

<ivy-module version="1.0">
    <info organisation="com.foo" module="coreTools"/>
        <configurations defaultconfmapping="runtime->runtime(*)">
          <conf name="runtime" description="Run Time dependencies"/>
           <conf name="compile" description="compile time dependencies"/>
        </configurations>
    <dependencies>
        <dependency org="javax.servlet" name="servlet-api" rev="2.4"
conf="compile"/>
    </dependencies>
</ivy-module>


<ivy-module version="1.0">
    <info organisation="com.foo" module="reports"/>
        <configurations defaultconfmapping="compile->compile(*)">
          <conf name="compile" description="Build Time dependencies"/>
        </configurations>
    <dependencies>


       //here i say i want to use coretools in my compile configuration and I want to to use
published runtime configuration (it should not have servelt api).
        <dependency name="coreTools" rev="latest.integration" conf="compile->runtime"/>

.....
</ivy-module>



________________________________________
From: buzzterrier [terry.jeske@gmail.com]
Sent: Monday, June 02, 2008 2:29 PM
To: ivy-user@ant.apache.org
Subject: RE: Configurations really hard to understand

Thx Ruel,

I created a "runtime" conf on the servlet-api dependency on my coreTools
api. I then added coreTools api as a dependency in my web app, but gave it a
"compile" conf. Since the web app was using a "compile" configuration, I
thought that it would ignore the "runtime" dependency on coreTools api.

for example, here is the coreTools api:

<ivy-module version="1.0">
    <info organisation="com.foo" module="coreTools"/>
        <configurations defaultconfmapping="runtime->runtime(*)">
          <conf name="runtime" description="Run Time dependencies"/>
        </configurations>
    <dependencies>
        <dependency org="javax.servlet" name="servlet-api" rev="2.4"
conf="runtime"/>
    </dependencies>
</ivy-module>

and here is the web app using a compile conf:

<ivy-module version="1.0">
    <info organisation="com.foo" module="reports"/>
        <configurations defaultconfmapping="compile->compile(*)">
          <conf name="compile" description="Build Time dependencies"/>
        </configurations>
    <dependencies>

        <dependency name="coreTools" rev="latest.integration" conf="compile"/>

.....
</ivy-module>

But building the reports module still pulls down servlet-api from coreTools.

[ivy:retrieve]  confs: [compile]
[ivy:retrieve]  found com.foo#coreTools;10 in projects
[ivy:retrieve]  [10] com.foo#coreTools;latest.integration
[ivy:retrieve]  found javax.servlet#servlet-api;2.4 in libraries




ruel loehr wrote:
>
> Yes,  I struggled with it too at first.
>
> In my main project, I usually publish a directory config called runtime
> which just has the absolute necessary runtime dependencies.
>
> Then for any project which consumes my original one, I define a compile
> configuration which "eat" the runtime one.
>
> conf="compile->runtime"
>
>
>

--
View this message in context: http://www.nabble.com/Problem-with-host-name-over-https-tp12053693p17608947.html
Sent from the ivy-user mailing list archive at Nabble.com.


Mime
View raw message