Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6960615
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T15:25:28+00:00 2026-05-27T15:25:28+00:00

I am considering switching a Maven project that I manage to Apache-Ant/Ivy. I need

  • 0

I am considering switching a Maven project that I manage to Apache-Ant/Ivy. I need more control over the build process and am getting very frustrated with Maven. Please no comments about how great Maven is. My question is about Ivy.

I would like to set up a “standard” Ant build template that can later be used for other projects with minimal changes.

I will set up a central “enterprise” repository where we can place third-party libraries that are not available in the public Maven repositories (e.g. commercial libraries, Sun libraries, proprietary libraries, etc.). This enterprise repository will be available on our local LAN, but may not be available from outside the office.

Each developer will have a private repository in ~/.ivy/repository. I would like the Ant build to automatically update this private repository with changed versions of libraries from the enterprise repository.

In ~/.ivy/ant, I plan on placing “standard” modules for including in the individual project build.xml files, using the include task in Ant 1.8. These modules will provide things like Scala and Clojure compilation targets with different versions for different Scala and Clojure versions (e.g.: scala-compile-2.9.1.xml, clojure-compile-1.3.xml, etc.) The build modules will be available in the enterprise repository and should be updated automatically in the private repositories if they change.

Each project will follow a standard Maven directory structure: ${project}/src/main/java, ${project}/target/classes, etc.

In the past, I tried using Ivy but the Ant build files got to be very large (> 500 lines for the template build file) and hard to manage/edit. I am hoping that by putting standard targets in their own build modules in the ~/.ivy/ant directory, I can avoid that code bloat.

Can this be done? Am I way off base? The only documentation I can find on Ivy is at the Apache web site (http://ant.apache.org/ivy). Is there any other documentation available, including books?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T15:25:29+00:00Added an answer on May 27, 2026 at 3:25 pm

    Rather sensible idea about dividing template build file into includable helper files. Personally, now i’m switchin’ a really large project from ant (no dependency managment at all – only copying files from ftp) to ant/ivy solution. So i’ve done this way – i have a file with milestones targets – i.e ready-to-compile, compiled, ready-to-archiving, archived – so on. I think u got the idea. I’ve configured dependencies of all this targets ( dependencies in terms of ant, do’t get me wrong). In that way – compiled depends on ready-to-compile, ready-to-compilede depends on initialized – smth like this. This targets don’t have body – they are for including in every build-file of every module of your multi-module project. The sole purpose of this targets for maintaining the STATE of build, because of this import stuff things become rather tricky and it’s hard time to know what target was overriden, and when this target would be run. But with this file i can easily change state of vy build on every sensible milestone. I want in one module to compile help files with exteran exe. No problem – in this project i just do this – ready-to-archiving depends on the target for compiling help. And as this milestones targets are included – i can override only some of them – all others would presere the desired way of building project.

    Another part of my strategy – mixins build files – for every specific area. So i have a file for ivy. There i put initializing, resolving, publishing and so on. When i want to use ivy – i just include this file and manage depdendencies through my milestones targets. If the build is typical – i only include this file and have a convention-over-configuration functionality. All out of the box. How?? Just combining with other mixins. Mixins may include other mixins to depend on them. So each mixin is a reusable part of my build strategy. The stuff from OOP – single-concerned unit. In your case it’s scala mixin with targets specific for scala stuff.

    Then i have delegate.xml that delegates child projects common build activities. I have dist, all, test and whatever u want for multimodule project. The build order is evaluated with ant-ivy task buildlist.

    There also some other files – but this are the strategically basic files that helped me to have a reusable and maintanable build with this BIG and VERY Conservative project. So, if u are interested about details, don’t be shy and contact me. I will be very pleased to help you, because ivy docs are really comlicated and incomplete.

    EDIT: About books – Ant in Action may help you, i took several ideas from this book, and i really highly recommend it everyone to read. There u can find ivy stuff, also. And about ivy docs – sorry, it’s all that is available. But when i was in trouble with this cumbersome ivy+ant – i found several interesting articles on private blogs. So … that may fill the gap some way.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am considering switching a cross platform project from separate build management systems in
Considering a project where will work more than one developer and that will receive
The project I'm working with is compiled with GCC 3.4.2. I'm considering switching to
I'm considering switching from MFC to WPF. My first concern is that there are
I need to transfer large Excel files over a WCF service. Our project requires
Currently I'm considering between these 3 languages for a project that will require a
I am considering using the MultiPowUpload control from element-it on a project, as well
We're considering switching over to use TFS and the TFS Portal which is based
I developed a dynamic website using PHP and MySQL. Right now I'm considering switching
Considering that simple java code which would not work: public class Bar extends AbstractBar{

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.