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 [EMAIL PROTECTED]
Sent: Monday, June 02, 2008 2:29 PM
To: [email protected]
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.