aspose file tools*
The moose likes Ant, Maven and Other Build Tools and the fly likes Ant + Ivy: Add 3rd party stuff to shared repository Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "Ant + Ivy: Add 3rd party stuff to shared repository" Watch "Ant + Ivy: Add 3rd party stuff to shared repository" New topic
Author

Ant + Ivy: Add 3rd party stuff to shared repository

Jeffrey Bennett
Greenhorn

Joined: May 17, 2004
Posts: 12
I have a pre-established project that originally had all jars checked in with the project. We are in the process of retrofitting this project to make use of Ivy for dependency management. For most of the jars utilized, I was able to locate them on ibiblio, and so the public resolver works just fine. However, there are a handful of jars that I cannot locate publicly. Example: 1.) I just haven't looked hard enough, 2.) the jar is under US export control so isn't exposed on a public repository, or 3.) the jar is a patch release - the unpatched version exists, but not the patch.

Ideally, I'd like to push these extra jars to our Enterprise repository (shared). I can change the settings so that Ant will use the public repository and then fall back on the shared repository. That should allow the projects to be 3rd-party-jar clean and let Ivy do the heavy lifting.

My problem is that I don't know how to take a jar and upload it to a repository. The <ivy:publish> target looks promising but seems to be geared toward pushing artifacts up - the jars here aren't really artifacts. I'm trying to create a one-time-use thing to push the extra libs up to the repository.

Here's example:
Output:
BUILD FAILED
impossible to publish artifacts for javax.resource#connector;working@jbennett: java.lang.IllegalStateException: bad
ivy file for javax.resource#connector;working@jbennett: C:\MyWorkspace\MyProject\thirdparty\lib\connector-1_5.jar: java.text.ParseException: [[Fatal Error
] connector-1_5.jar:1:1: Content is not allowed in prolog. in file:/C:/MyWorkspace/MyProject/thirdparty/lib/connector-1_5.jar
Frank Mundt
Greenhorn

Joined: Mar 05, 2002
Posts: 2
I had a similar issue to yours as I am migrating builds from Ant to Ant and Ivy. I solved it by creating an internal centralized Maven Repository using Artifactory (www.jfrog.org) and importing all of the jar files that are needed by my application in one place. Another Maven repository to consider is Nexus, http://nexus.sonatype.org/.

Using an internal centralized Maven repository gives me 2 benefits, speed of downloading jar files and control of what products and versions the other developers can use. I removed the external links from the ivysettings.xml file. If you still require external public access, Artifactory provides proxies and caching of external Maven repositories. I used the code on Peter Pilgrim's site to speed up the population of the internal repository, http://www.jroller.com/peter_pilgrim/entry/building_an_enterprise_repository_with.

You may be able to use some of his work to help build your internal Ivy repository.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Ant + Ivy: Add 3rd party stuff to shared repository
 
Similar Threads
mavn and specific jars
ivy users - record of dependencies?
Ivy Settings Issue
Package import / Distribution Question
How do you manage dependencies?