What I would suggest is a standard dir in the project itself (like src or target) which is the projects "private" repository... this dir would have the same structure as the public repository and be included automatically in dependency checks if it exists. Such a modification would solve this problem once and for all. umm... don't forget to document it...
============================ Now back to our regularly scheduled reply:
Ahh, you mean for dependencies that are not included on ibiblio (or some other repository)...
I do a special setup for that stuff.
create dir src/libs
add the jars to that dir, and include a version.
add the dependency as normal to the project.xml file.
add a line in the project.properties for the override.
add a goal in the maven.xml that adds the jar to your local repository from the src/libs dir.
I usually have to do this with Sun libs that can't be normally distributed, but I've also done it with libs that have no repository location.
Example:
The following example ensures that the javamail api which has no repository can be found by the project.
Unfortunately not all plugins respect the jar override properties so the goal has to be included to copy the jar into the proper repository location. Note that this is a lot of extra work to add your libs, bit I find its worth the effort to have a clean dependency list and a "compile anywhere" source tree.
FYI: I've used a couple of things that might not be obvious to someone new to Maven, such as the preGoal which in this case will execute before the java:compile goal does. You can specify a preGoal for any goal.
in project.xml
--------------------------------
<dependency>
<groupId>java</groupId>
<artifactId>javamail</artifactId>
<version>1.3.1</version>
<type>jar</type>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>in project.properties
--------------------------------*
maven.jar.override=on
maven.jar.javamail=${basedir}/src/libs/javamail-1.3.1.jar
*
in maven.xml
--------------------------------
<preGoal name="java:compile">
<attainGoal name="copy-private-jars" />
</preGoal><goal name="copy-private-jars">
<mkdir dir="${maven.repo.local}/java/jars" />
<copy file="${maven.src.dir}/libs/javamail-1.3.1.jar" toDir="${maven.repo.local}/java/jars"/>
</goal>
- Brill Pappin
Bill Madison wrote:
Thanks Matt,
Isnt there a lib or something where I can point to,
instead of putting each and every jar as a dpendency,
thats a lot of cut and paste work and also most of the
thirdparty jars dont come with a version and as I see
the version is a requiredd element. Theres got to be a
better and easier way of doing this.
The problem in my case is that we have 2 development
teams, and they put their jars in the IDE build path
and when it comes to integration/build I have to start
figuring out the version for each jar and start
putting them in the project.xml which is kind of
cumbersome. So trying to see if there is a better way
f doing this. Please let me know if you have a
solution for this.
Thanks
--- "matthew.hawthorne" <[EMAIL PROTECTED]> wrote:
Bill Madison wrote:---------------------------------------------------------------------
I am a newbie to Maven. And my question is, if mythe
project needs some 30 thirdparty jars, for each of
them do I need to put a <dependency> element in
project.xml? Please let me know.Yes.
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
__________________________________ Do you Yahoo!? Yahoo! Photos: High-quality 4x6 digital prints for 25� http://photos.yahoo.com/ph/print_splash
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
