Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sharing ivy configurations

Tags:

java

ant

ivy

I'm maintaining multiple projects backed by ivy configurations. Many configurations overlap, such as:

  • common build configurations ( pmd, findbugs );
  • dependency groups ( spring );

Is there a way to import these dependencies by referencing a shared configuration?


N.B. Please don't suggest Maven, as I know about it, but it is not (yet) an option for these particular projects.

like image 538
Robert Munteanu Avatar asked May 26 '26 12:05

Robert Munteanu


1 Answers

Does include do what you need, or is the problem more complicated?

From the documentation:

<ivy-module version="1.0">
  <info organisation="myorg"
         module="mymodule"/>
  <configurations>
    <include file="path/to/included-configurations.xml"/>
    <conf name="conf3"/>
  </configurations>
  <dependencies>
    <dependency name="mymodule1" rev="1.0"/>
    <dependency name="mymodule2" rev="2.0" conf="conf2,conf3->*"/>
  </dependencies>
</ivy-module>

with included-configurations.xml like this:

<configurations defaultconfmapping="*->@">
  <conf name="conf1" visibility="public"/>
  <conf name="conf2" visibility="private"/>
</configurations>

Update: For dependencies, I'm not sure it is possible. I found a discussion on importing dependencies that indicates this is by design to avoid circular dependencies.

Perhaps you could write a script to process a referenced ivy file and inline the dependencies into your project?

like image 126
Rich Seller Avatar answered Jun 04 '26 12:06

Rich Seller