You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Lachlan Deck <la...@gmail.com> on 2008/04/18 22:05:17 UTC
[newby] how to include/package private libs/*.jar
Hi there,
I'm quite new to maven, but I would have thought this question would
have been included on the FAQ page for maven - but it's not. I've
googled around but mustn't be putting in the right search phrase or
something... as obviously I've not found the answer :-)
The simple question is how do I define dependencies on libs/*.jar for
one of my projects where I have jars from a 3rd party (a payment
gateway) in the project's lib folder. These libs live in svn with the
project - not in a repo (and don't have a version or a pom of their
own - they're just libs).
i.e., they obviously need to be on the classpath + packaged with the
final jar?
I'm sure it's something simple... thanks in advance.
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Henrique,
On 19/04/2008, at 6:52 AM, Henrique Prange wrote:
> It is not recommended that you store your jars in SVN. So, there is
> no simple way to do what you want with Maven.
Recommended or not - I simply cannot go another route. The project
needs to be self-contained which requires another developer to check
it out via svn without any further hassles. Similarly a build server
needs to be able to svn up && build...
Putting it in my local repository seems kind of pointless as it's not
in subversion and the project will fail to build elsewhere. It also
seems to assume that the repo is publicly available (or at least on
vpn).
This seems more like a philosophical limitation, if I can put it that
way :-)
i.e., it seems to me that there's nothing technically difficult for
maven to support this:
<dependency>
<systemPath>...</systemPath>
</dependency>
i.e., where artifactId, groupId, and version are optional if the
systemPath is supplied - seeing as it's kind of redundant when
systemPath is supplied as far as I can see.
> But you can create a repository to share your own libraries (Maven
> can generate the pom.xml for you). Take a look at [1] and [2].
>
> [1]http://maven.apache.org/guides/introduction/introduction-to-repositories.html
> [2]http://maven.apache.org/guides/mini/guide-3rd-party-jars-
> remote.html
Thanks for those links. I had already seen the first and a variation
on the 2nd... perhaps I can create a local repo for that framework
with the localRepositoryPath etc options
http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
Seems like it's a bit over the top - but if it works then that's Good
Enough For Now(tm).
> Cheers from your WO friend, ;)
:-)
> Henrique
>
> Lachlan Deck wrote:
>> Hi there,
>> I'm quite new to maven, but I would have thought this question
>> would have been included on the FAQ page for maven - but it's not.
>> I've googled around but mustn't be putting in the right search
>> phrase or something... as obviously I've not found the answer :-)
>> The simple question is how do I define dependencies on libs/*.jar
>> for one of my projects where I have jars from a 3rd party (a
>> payment gateway) in the project's lib folder. These libs live in
>> svn with the project - not in a repo (and don't have a version or a
>> pom of their own - they're just libs).
>> i.e., they obviously need to be on the classpath + packaged with
>> the final jar?
>> I'm sure it's something simple... thanks in advance.
>> with regards,
>> --
>> Lachlan Deck
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Henrique Prange <hp...@gmail.com>.
Hi Lachan,
It is not recommended that you store your jars in SVN. So, there is no
simple way to do what you want with Maven. But you can create a
repository to share your own libraries (Maven can generate the pom.xml
for you). Take a look at [1] and [2].
[1]http://maven.apache.org/guides/introduction/introduction-to-repositories.html
[2]http://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html
Cheers from your WO friend, ;)
Henrique
Lachlan Deck wrote:
> Hi there,
>
> I'm quite new to maven, but I would have thought this question would
> have been included on the FAQ page for maven - but it's not. I've
> googled around but mustn't be putting in the right search phrase or
> something... as obviously I've not found the answer :-)
>
> The simple question is how do I define dependencies on libs/*.jar for
> one of my projects where I have jars from a 3rd party (a payment
> gateway) in the project's lib folder. These libs live in svn with the
> project - not in a repo (and don't have a version or a pom of their own
> - they're just libs).
>
> i.e., they obviously need to be on the classpath + packaged with the
> final jar?
>
> I'm sure it's something simple... thanks in advance.
>
> with regards,
> --
>
> Lachlan Deck
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Nick,
On 24/04/2008, at 6:50 PM, <ni...@planet.nl> <ni...@planet.nl>
wrote:
> It would be something like:
>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-dependency-plugin</artifactId>
> <version>2.0</version>
> <executions>
> <execution>
> <id>list-deps</id>
> <phase>generate-resources</phase>
> <goals>
> <goal>list</goal>
> </goals>
> <configuration>
> <outputFile>foo.txt</outputFile>
> </configuration>
> </execution>
> </executions>
> <plugins>
> </build>
Nice. Thanks for that. And/Or I suppose I could use antrun to
transform the output as needed.
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
RE: [newby] how to include/package private libs/*.jar
Posted by ni...@planet.nl.
It would be something like:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>list-deps</id>
<phase>generate-resources</phase>
<goals>
<goal>list</goal>
</goals>
<configuration>
<outputFile>foo.txt</outputFile>
</configuration>
</execution>
</executions>
<plugins>
</build>
Hth,
Nick S.
-----Original Message-----
From: Lachlan Deck [mailto:lachlan.deck@gmail.com]
Sent: Thu 4/24/2008 04:40
To: Maven Users List
Subject: Re: [newby] how to include/package private libs/*.jar
Hi Joshua,
On 23/04/2008, at 11:23 PM, Joshua ChaitinPollak wrote:
> On Apr 23, 2008, at 1:05 AM, Lachlan Deck wrote:
>>>> - append to the text file a list of the jars bundled (prefixing
>>>> each with a custom path).
>>>
>>> That's a tricky one. I'd have to say start with the dependency or
>>> assembly plugin and see if they can do what you need. I know one
>>> of the plugins can put the jars on your classpath in the Manifest,
>>> but we don't use the manifest, so I have no experience with it.
>>
>> Right. This is the bit I'm stuck with...
>
> Well, I'm not sure if this is helpful or not, but you can do this:
>
> mvn -DoutputFile=foo.txt dependency:list
>
> which will put your dependencies in a file called foo.txt. You could
> then use the exec or groovy plugins to process the output file into
> the format you want.
Interesting. Forgive my ignorance (still a maven newbie) but how might
I incorporate that into the build lifecycle?
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Joshua,
On 23/04/2008, at 11:23 PM, Joshua ChaitinPollak wrote:
> On Apr 23, 2008, at 1:05 AM, Lachlan Deck wrote:
>>>> - append to the text file a list of the jars bundled (prefixing
>>>> each with a custom path).
>>>
>>> That's a tricky one. I'd have to say start with the dependency or
>>> assembly plugin and see if they can do what you need. I know one
>>> of the plugins can put the jars on your classpath in the Manifest,
>>> but we don't use the manifest, so I have no experience with it.
>>
>> Right. This is the bit I'm stuck with...
>
> Well, I'm not sure if this is helpful or not, but you can do this:
>
> mvn -DoutputFile=foo.txt dependency:list
>
> which will put your dependencies in a file called foo.txt. You could
> then use the exec or groovy plugins to process the output file into
> the format you want.
Interesting. Forgive my ignorance (still a maven newbie) but how might
I incorporate that into the build lifecycle?
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Joshua ChaitinPollak <jp...@kivasystems.com>.
On Apr 23, 2008, at 1:05 AM, Lachlan Deck wrote:
>>> - append to the text file a list of the jars bundled (prefixing
>>> each with a custom path).
>>
>> That's a tricky one. I'd have to say start with the dependency or
>> assembly plugin and see if they can do what you need. I know one of
>> the plugins can put the jars on your classpath in the Manifest, but
>> we don't use the manifest, so I have no experience with it.
>
> Right. This is the bit I'm stuck with...
Well, I'm not sure if this is helpful or not, but you can do this:
mvn -DoutputFile=foo.txt dependency:list
which will put your dependencies in a file called foo.txt. You could
then use the exec or groovy plugins to process the output file into
the format you want.
-Josh
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Joshua,
On 23/04/2008, at 10:40 AM, Joshua ChaitinPollak wrote:
> On Apr 22, 2008, at 8:16 PM, Lachlan Deck wrote:
>
>> On 23/04/2008, at 12:56 AM, Joshua ChaitinPollak wrote:
>>
>>> Have you tried, or has anyone suggested using the system scope?
>>
>> I had thought about it, but, unless I'm mistaken, that assumes that
>> the jar will be found in that location at runtime/deployment also
>> (which it won't).
>
> Well, as far as I understand, using the system scope tells Maven not
> to do anything with it at release time, so putting the library in
> your release bundle, jar, or whatever, and on the classpath would be
> your responsiblity.
>
> We get around that by using a custom assembly definition and a
> custom shell script to start our application which puts anything in
> our libs directory (in our deployed installation) on the classpath.
Okay.
>>> On the other hand, what we've done internally is created an
>>> inhouse Maven repository with Artifactory, and we uploaded our
>>> third party jars to the internal 3rd party jar repository (things
>>> like JIDE that aren't externally redistributable)
>>> I think you mentioned that solution isn't available to you.
>>
>> I might be able to make it happen... we'll see.
>>
>> The part I'm needing help with now is creating the final assembly/
>> bundle.
>> Specifically I need to do the following:
>> - filter a text file (replacing certain properties) +
>
> Well, we do this:
>
> <resource>
> <directory>${basedir}/src/main/resources</directory>
> <filtering>true</filtering>
> </resource>
>
> and then we have a version.properties file that looks like:
>
> pardsbane@Buran:~/src/$ cat src/main/resources/pkg/spec/
> version.properties
> application.repository.version=${buildNumber}
> application.releasenumber=${project.version}
> application.customer=${customer}
> application.repository.url=${project.scm.connection}
>
> Those properties are supplied by Maven. I believe you can refer to
> anything in the <properties> block in this fashion as well.
Oh, doing that is the easy part. What I'm referring to is filtering
the file in such that it dynamically inserts a list of all
dependencies prefixed by a custom prefix.
What you've mentioned doesn't appear to achieve this.
>> - append to the text file a list of the jars bundled (prefixing
>> each with a custom path).
>
> That's a tricky one. I'd have to say start with the dependency or
> assembly plugin and see if they can do what you need. I know one of
> the plugins can put the jars on your classpath in the Manifest, but
> we don't use the manifest, so I have no experience with it.
Right. This is the bit I'm stuck with...
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Joshua ChaitinPollak <jp...@kivasystems.com>.
On Apr 22, 2008, at 8:16 PM, Lachlan Deck wrote:
> Hi Joshua,
>
> On 23/04/2008, at 12:56 AM, Joshua ChaitinPollak wrote:
>
>> Have you tried, or has anyone suggested using the system scope?
>
> I had thought about it, but, unless I'm mistaken, that assumes that
> the jar will be found in that location at runtime/deployment also
> (which it won't).
Well, as far as I understand, using the system scope tells Maven not
to do anything with it at release time, so putting the library in your
release bundle, jar, or whatever, and on the classpath would be your
responsiblity.
We get around that by using a custom assembly definition and a custom
shell script to start our application which puts anything in our libs
directory (in our deployed installation) on the classpath.
>> On the other hand, what we've done internally is created an inhouse
>> Maven repository with Artifactory, and we uploaded our third party
>> jars to the internal 3rd party jar repository (things like JIDE
>> that aren't externally redistributable)
>> I think you mentioned that solution isn't available to you.
>
> I might be able to make it happen... we'll see.
>
> The part I'm needing help with now is creating the final assembly/
> bundle.
> Specifically I need to do the following:
> - filter a text file (replacing certain properties) +
Well, we do this:
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
and then we have a version.properties file that looks like:
pardsbane@Buran:~/src/$ cat src/main/resources/pkg/spec/
version.properties
application.repository.version=${buildNumber}
application.releasenumber=${project.version}
application.customer=${customer}
application.repository.url=${project.scm.connection}
Those properties are supplied by Maven. I believe you can refer to
anything in the <properties> block in this fashion as well.
> - append to the text file a list of the jars bundled (prefixing each
> with a custom path).
That's a tricky one. I'd have to say start with the dependency or
assembly plugin and see if they can do what you need. I know one of
the plugins can put the jars on your classpath in the Manifest, but we
don't use the manifest, so I have no experience with it.
-Josh
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Joshua,
On 23/04/2008, at 12:56 AM, Joshua ChaitinPollak wrote:
> Have you tried, or has anyone suggested using the system scope?
I had thought about it, but, unless I'm mistaken, that assumes that
the jar will be found in that location at runtime/deployment also
(which it won't).
> On the other hand, what we've done internally is created an inhouse
> Maven repository with Artifactory, and we uploaded our third party
> jars to the internal 3rd party jar repository (things like JIDE that
> aren't externally redistributable)
> I think you mentioned that solution isn't available to you.
I might be able to make it happen... we'll see.
The part I'm needing help with now is creating the final assembly/
bundle.
Specifically I need to do the following:
- filter a text file (replacing certain properties) +
- append to the text file a list of the jars bundled (prefixing each
with a custom path).
Any suggestions?
Thanks
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Joshua ChaitinPollak <jp...@kivasystems.com>.
Lachlan,
Have you tried, or has anyone suggested using the system scope? You
should be able to do something like this:
<project>
...
<dependencies>
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/3rdpartyLib.jar</systemPath>
</dependency>
</dependencies>
...
</project>
On the other hand, what we've done internally is created an inhouse
Maven repository with Artifactory, and we uploaded our third party
jars to the internal 3rd party jar repository (things like JIDE that
aren't externally redistributable)
I think you mentioned that solution isn't available to you.
-Josh
On Apr 19, 2008, at 11:15 PM, Lachlan Deck wrote:
> Hi Wayne,
>
> On 20/04/2008, at 1:35 AM, Wayne Fay wrote:
>
>> You also need to quite simply understand that Maven is not Ant (!).
>> While there are some similarities in the two (they both build Java
>> code), there are far more dissimilarities.
>
> I do understand this actually ... and from what I've seen so far I'm
> liking what maven has to offer (especially all the out-of-the-box
> stuff that comes for free - which a little hunting).
>
>> Maven has certain beliefs based on best practices about how builds
>> should be organized and performed. One of those best practices is
>> "jars shouldn't go into SCM". So, you won't find a lot of support for
>> this "feature" in Maven.
>
> Fair enough.
>
>> In general, Maven is less flexible than Ant. For example, Maven
>> expects a certain project structure for your code. While you can
>> adjust (through configuration) the location of source code etc, it
>> makes things a little more complex and increases the size of your
>> pom,
>> plus you may run into issues with certain plugins etc.
>
> I'm quite a fan of conventions actually... but obviously there's a
> mind-shift that I needed to grapple with and have questions
> answered... [1]
>
>> If you are used to and require a large amount of flexibility in your
>> builds, then please stick with Ant. Those of us who have migrated to
>> Maven generally believe we are better off as a result, but there is a
>> transition period and the mindset is a bit different.
>
> Yep. I'm getting there.
>
>> I'm also curious -- why are you moving to Maven for this particular
>> project?
>
> Because I, personally, was fed up with ant. For some of the simplest
> things I had to write my own plugin to achieve what should just work
> - but even then, for the particular environment I'm working in, it
> was too system dependent (e.g., on external configs etc... long
> story). So I started looking at maven slowly on the side at first
> (as obviously there's a bit of reading to do in order to understand
> the thing and so forth). In the end I liked what I saw and quite
> quickly saw the potential for less pain + lots of extras ;-)
>
>> Was a mandate handed down from someone above you, or did a
>> customer ask for it, or was it simply personal interest? You mention
>> that you have no ability to create a shared repo etc, so I wonder
>> where all this is coming from...
>
> [1] Yeah, my questions were really in anticipation of questions that
> I know will come from up the chain, so to speak. "Why can't we just
> put them in subversion?! etc etc" I could go on... but essentially I
> need to have enough good reasons for moving in another direction.
>
> With a better understanding now of how to create a repository, it
> turns out I might very well be able to set up a shared one after
> all. I'm thinking that I could maybe set up the remote one as a
> mirror of a custom repo on my local system (at first) and rsync the
> two when needed. The pom could reference the remote repo but perhaps
> in my settings.xml file I could override the location to point to my
> local copy when offline(?)
>
> Any suggestions on this?
>
> with regards,
> --
>
> Lachlan Deck
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Wayne,
On 20/04/2008, at 1:35 AM, Wayne Fay wrote:
> You also need to quite simply understand that Maven is not Ant (!).
> While there are some similarities in the two (they both build Java
> code), there are far more dissimilarities.
I do understand this actually ... and from what I've seen so far I'm
liking what maven has to offer (especially all the out-of-the-box
stuff that comes for free - which a little hunting).
> Maven has certain beliefs based on best practices about how builds
> should be organized and performed. One of those best practices is
> "jars shouldn't go into SCM". So, you won't find a lot of support for
> this "feature" in Maven.
Fair enough.
> In general, Maven is less flexible than Ant. For example, Maven
> expects a certain project structure for your code. While you can
> adjust (through configuration) the location of source code etc, it
> makes things a little more complex and increases the size of your pom,
> plus you may run into issues with certain plugins etc.
I'm quite a fan of conventions actually... but obviously there's a
mind-shift that I needed to grapple with and have questions
answered... [1]
> If you are used to and require a large amount of flexibility in your
> builds, then please stick with Ant. Those of us who have migrated to
> Maven generally believe we are better off as a result, but there is a
> transition period and the mindset is a bit different.
Yep. I'm getting there.
> I'm also curious -- why are you moving to Maven for this particular
> project?
Because I, personally, was fed up with ant. For some of the simplest
things I had to write my own plugin to achieve what should just work -
but even then, for the particular environment I'm working in, it was
too system dependent (e.g., on external configs etc... long story). So
I started looking at maven slowly on the side at first (as obviously
there's a bit of reading to do in order to understand the thing and so
forth). In the end I liked what I saw and quite quickly saw the
potential for less pain + lots of extras ;-)
> Was a mandate handed down from someone above you, or did a
> customer ask for it, or was it simply personal interest? You mention
> that you have no ability to create a shared repo etc, so I wonder
> where all this is coming from...
[1] Yeah, my questions were really in anticipation of questions that I
know will come from up the chain, so to speak. "Why can't we just put
them in subversion?! etc etc" I could go on... but essentially I need
to have enough good reasons for moving in another direction.
With a better understanding now of how to create a repository, it
turns out I might very well be able to set up a shared one after all.
I'm thinking that I could maybe set up the remote one as a mirror of a
custom repo on my local system (at first) and rsync the two when
needed. The pom could reference the remote repo but perhaps in my
settings.xml file I could override the location to point to my local
copy when offline(?)
Any suggestions on this?
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Wayne Fay <wa...@gmail.com>.
Lachlan,
You also need to quite simply understand that Maven is not Ant (!).
While there are some similarities in the two (they both build Java
code), there are far more dissimilarities.
Maven has certain beliefs based on best practices about how builds
should be organized and performed. One of those best practices is
"jars shouldn't go into SCM". So, you won't find a lot of support for
this "feature" in Maven.
In general, Maven is less flexible than Ant. For example, Maven
expects a certain project structure for your code. While you can
adjust (through configuration) the location of source code etc, it
makes things a little more complex and increases the size of your pom,
plus you may run into issues with certain plugins etc.
If you are used to and require a large amount of flexibility in your
builds, then please stick with Ant. Those of us who have migrated to
Maven generally believe we are better off as a result, but there is a
transition period and the mindset is a bit different.
I'm also curious -- why are you moving to Maven for this particular
project? Was a mandate handed down from someone above you, or did a
customer ask for it, or was it simply personal interest? You mention
that you have no ability to create a shared repo etc, so I wonder
where all this is coming from...
Wayne
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Wayne Fay <wa...@gmail.com>.
> > A Maven Repository Manager can store the artifacts on a file system and
> you
> > can delete old -SNAPSHOTs (which is allowed)
>
> How is this done?
You were already told this -- Archiva, Nexus, Artifactory, etc are
"Maven Repository Managers". They can manage snapshots for you.
> > Deleting old releases is not really the way a repository is designed to
> > work.
>
> Not really - but is there a command for doing so?
rm -rf ~/.m2/repository will take care of the local repo cache. For
managing a remote repo, you should be using Archiva, Nexus,
Artifactory, etc.
As for your earlier <systemPath> question, this does exist, it is
called <scope>system</scope> but it is generally considered a bad
thing to use it. In this particular case, you may want to look into
it.
Wayne
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Henrique Prange <hp...@gmail.com>.
Hi Lachlan,
On Sat, Apr 19, 2008 at 8:31 AM, Lachlan Deck <la...@gmail.com> wrote:
> On 19/04/2008, at 8:51 PM, Stephen Connolly wrote:
>
> > Deleting old releases is not really the way a repository is designed to
> > work.
> >
>
> Not really - but is there a command for doing so?
>
Could you try the purge-local-repository goal of the
maven-dependency-plugin? See the docs here [1]. I never used this
goal, but I think it can help you.
[1]http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
Cheers
Henrique
>
>
> Thanks again.
>
> with regards,
> --
>
> Lachlan Deck
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
On 19/04/2008, at 8:51 PM, Stephen Connolly wrote:
>> Okay I think my next question would be: is there an easy maven
>> command for
>> culling jars prior to a certain version from a repository?
>> e.g., say I've added versions 1, 2, 3 and 4 to the repository (such
>> as
>> nightly builds or something)... is there a command that would
>> easily remove
>> versions prior to 3?
>>
>>
> And now you see why keeping a repository in SVN is a bad thing!
Yep. It's worth saying, however, that there's the ideal and then...
there's management ;-)
> Once they go into SVN they can never be removed... (OK, so you can
> hide
> them, but they are still in your SVN repository, so why even bother
> hiding
> them, you're not going to ever be able to reclaim that space from
> your SV
> repository)
Good point - but space is really not my concern. Space is relatively
cheap.
> A Maven Repository Manager can store the artifacts on a file system
> and you
> can delete old -SNAPSHOTs (which is allowed)
How is this done?
> Deleting old releases is not really the way a repository is designed
> to
> work.
Not really - but is there a command for doing so?
Thanks again.
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Stephen Connolly <st...@gmail.com>.
> Okay I think my next question would be: is there an easy maven command for
> culling jars prior to a certain version from a repository?
> e.g., say I've added versions 1, 2, 3 and 4 to the repository (such as
> nightly builds or something)... is there a command that would easily remove
> versions prior to 3?
>
>
And now you see why keeping a repository in SVN is a bad thing!
Once they go into SVN they can never be removed... (OK, so you can hide
them, but they are still in your SVN repository, so why even bother hiding
them, you're not going to ever be able to reclaim that space from your SV
repository)
A Maven Repository Manager can store the artifacts on a file system and you
can delete old -SNAPSHOTs (which is allowed)
Deleting old releases is not really the way a repository is designed to
work.
-Stephen
Re: [newby] how to include/package private libs/*.jar
Posted by Stephen Connolly <st...@gmail.com>.
Maven repositories are designed to be write once, delete never... so you'd
have to script that yourself.
On Sat, Apr 19, 2008 at 11:31 AM, Lachlan Deck <la...@gmail.com>
wrote:
> Hi Stephen,
>
> On 19/04/2008, at 6:10 PM, Stephen Connolly wrote:
>
> The following is _not_ recommended.
> >
> > Once you get more used to Maven you will realize that storing your
> > binary
> > artifacts in SVN is a "bad thing".
> >
> > Fundamentally, they are a different creature from the source code.
> >
>
> I mostly concur - however in this case, the particular jar files of
> interest seem more like a static resource as they're provided by a 3rd
> party, will rarely be updated, and come pre-built. They simply need to be on
> the classpath at compile/runtime.
>
> What you should do is use a Maven repository manager (e.g. Nexus,
> > Artifactory, etc) and deploy your binary artifacts to that manager.
> >
>
> Not possible in this scenario... for better or worse.
>
> There is a poor man's solution to your problem... and that is to fake a
> > remote repository in subversion providing your subversion is served over
> > http (if Maven > 2.0) or https (if Maven > 2.0.5)
> >
> > You add a repository definition where the repository URL is the place in
> > SVN
> > where you are keeping your remote repository
> >
> > Basically, you'd be doing similar to what has been done at
> > https://maven2-repository.dev.java.net
> >
> > That way your binaries are kept in SVN, but the developer does not check
> > out
> > the trunk of that repository, only accesses it via HTTP
> >
>
> Just to be clear - the only jars that'll be in this psuedo repo will be
> those used by the project. But what you're suggesting would be quite useful.
> Naturally that'll require authentication in each persons settings file. No
> problems.
>
> Okay I think my next question would be: is there an easy maven command for
> culling jars prior to a certain version from a repository?
> e.g., say I've added versions 1, 2, 3 and 4 to the repository (such as
> nightly builds or something)... is there a command that would easily remove
> versions prior to 3?
>
> Thanks again...
>
>
> with regards,
> --
>
> Lachlan Deck
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Stephen,
On 19/04/2008, at 6:10 PM, Stephen Connolly wrote:
> The following is _not_ recommended.
>
> Once you get more used to Maven you will realize that storing your
> binary
> artifacts in SVN is a "bad thing".
>
> Fundamentally, they are a different creature from the source code.
I mostly concur - however in this case, the particular jar files of
interest seem more like a static resource as they're provided by a 3rd
party, will rarely be updated, and come pre-built. They simply need to
be on the classpath at compile/runtime.
> What you should do is use a Maven repository manager (e.g. Nexus,
> Artifactory, etc) and deploy your binary artifacts to that manager.
Not possible in this scenario... for better or worse.
> There is a poor man's solution to your problem... and that is to
> fake a
> remote repository in subversion providing your subversion is served
> over
> http (if Maven > 2.0) or https (if Maven > 2.0.5)
>
> You add a repository definition where the repository URL is the
> place in SVN
> where you are keeping your remote repository
>
> Basically, you'd be doing similar to what has been done at
> https://maven2-repository.dev.java.net
>
> That way your binaries are kept in SVN, but the developer does not
> check out
> the trunk of that repository, only accesses it via HTTP
Just to be clear - the only jars that'll be in this psuedo repo will
be those used by the project. But what you're suggesting would be
quite useful. Naturally that'll require authentication in each persons
settings file. No problems.
Okay I think my next question would be: is there an easy maven command
for culling jars prior to a certain version from a repository?
e.g., say I've added versions 1, 2, 3 and 4 to the repository (such as
nightly builds or something)... is there a command that would easily
remove versions prior to 3?
Thanks again...
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Stephen Connolly <st...@gmail.com>.
The following is _not_ recommended.
Once you get more used to Maven you will realize that storing your binary
artifacts in SVN is a "bad thing".
Fundamentally, they are a different creature from the source code.
What you should do is use a Maven repository manager (e.g. Nexus,
Artifactory, etc) and deploy your binary artifacts to that manager.
There is a poor man's solution to your problem... and that is to fake a
remote repository in subversion providing your subversion is served over
http (if Maven > 2.0) or https (if Maven > 2.0.5)
You add a repository definition where the repository URL is the place in SVN
where you are keeping your remote repository
Basically, you'd be doing similar to what has been done at
https://maven2-repository.dev.java.net
That way your binaries are kept in SVN, but the developer does not check out
the trunk of that repository, only accesses it via HTTP
-Stephen
On Sat, Apr 19, 2008 at 8:28 AM, Lachlan Deck <la...@gmail.com>
wrote:
> Hi Mark,
>
> On 19/04/2008, at 5:13 PM, Mark Struberg wrote:
>
> To be more specific:
> > Look at the maven-deploy-plugin
> >
> > http://maven.apache.org/plugins/maven-deploy-plugin/usage.html
> >
> > and use the
> >
> > > mvn deploy:deploy-file
> > >
> > mojo
> >
> > Example:
> > mvn deploy:deploy-file -DrepositoryId=myrepo.id \
> > -Dfile=myjartoupload.jar \
> > -DgroupId=my.groupId \
> > -DartifactId=my-artifactId \
> > -Dversion=myversion \
> > -Dpackaging=jar \
> >
> > You can use this mojo from everywhere, since it is marked as
> > '@requiresProject false'.
> >
> > If this was successfull (check your ~/.m2/repository), you may remove
> > this jar from your lib
> > folder and add the dependency in your pom.
> >
>
> I'm wondering how this helps another developer who checks out the project?
> Or indeed if my system gets somehow hosed?
>
> I have no permissions to be creating a shared repo. Thus I need to be able
> to keep the jars with the project. With ant this was completely simple (one
> of the few nice things about ant)... so I don't quite appreciate why it
> needs to be so complex with maven?
>
> Fair enough for world-sharable jars (i.e., all the various open-source
> projects out there) - but for a private jar I can't see the sense in it (at
> least yet).
>
> Thanks...
>
> with regards,
> --
>
> Lachlan Deck
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
Re: [newby] how to include/package private libs/*.jar
Posted by Lachlan Deck <la...@gmail.com>.
Hi Mark,
On 19/04/2008, at 5:13 PM, Mark Struberg wrote:
> To be more specific:
> Look at the maven-deploy-plugin
>
> http://maven.apache.org/plugins/maven-deploy-plugin/usage.html
>
> and use the
>> mvn deploy:deploy-file
> mojo
>
> Example:
> mvn deploy:deploy-file -DrepositoryId=myrepo.id \
> -Dfile=myjartoupload.jar \
> -DgroupId=my.groupId \
> -DartifactId=my-artifactId \
> -Dversion=myversion \
> -Dpackaging=jar \
>
> You can use this mojo from everywhere, since it is marked as
> '@requiresProject false'.
>
> If this was successfull (check your ~/.m2/repository), you may
> remove this jar from your lib
> folder and add the dependency in your pom.
I'm wondering how this helps another developer who checks out the
project? Or indeed if my system gets somehow hosed?
I have no permissions to be creating a shared repo. Thus I need to be
able to keep the jars with the project. With ant this was completely
simple (one of the few nice things about ant)... so I don't quite
appreciate why it needs to be so complex with maven?
Fair enough for world-sharable jars (i.e., all the various open-source
projects out there) - but for a private jar I can't see the sense in
it (at least yet).
Thanks...
with regards,
--
Lachlan Deck
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Mark Struberg <st...@yahoo.de>.
To be more specific:
Look at the maven-deploy-plugin
http://maven.apache.org/plugins/maven-deploy-plugin/usage.html
and use the
> mvn deploy:deploy-file
mojo
Example:
mvn deploy:deploy-file -DrepositoryId=myrepo.id \
-Dfile=myjartoupload.jar \
-DgroupId=my.groupId \
-DartifactId=my-artifactId \
-Dversion=myversion \
-Dpackaging=jar \
You can use this mojo from everywhere, since it is marked as '@requiresProject false'.
If this was successfull (check your ~/.m2/repository), you may remove this jar from your lib
folder and add the dependency in your pom.
hope this helps,
strub
--- Johan Eltes <jo...@callistaenterprise.se> schrieb:
> You need to put them in you local repo. You don't need to create a pom
> for them.
>
> /Johan
>
>
>
> 18 apr 2008 kl. 22.05 Lachlan Deck <la...@gmail.com> skrev:
>
> > Hi there,
> >
> > I'm quite new to maven, but I would have thought this question would
> > have been included on the FAQ page for maven - but it's not. I've
> > googled around but mustn't be putting in the right search phrase or
> > something... as obviously I've not found the answer :-)
> >
> > The simple question is how do I define dependencies on libs/*.jar
> > for one of my projects where I have jars from a 3rd party (a payment
> > gateway) in the project's lib folder. These libs live in svn with
> > the project - not in a repo (and don't have a version or a pom of
> > their own - they're just libs).
> >
> > i.e., they obviously need to be on the classpath + packaged with the
> > final jar?
> >
> > I'm sure it's something simple... thanks in advance.
> >
> > with regards,
> > --
> >
> > Lachlan Deck
> >
__________________________________________________________
Gesendet von Yahoo! Mail.
Der Mailbox mit unbegrenztem Speicher.
http://de.overview.mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [newby] how to include/package private libs/*.jar
Posted by Johan Eltes <jo...@callistaenterprise.se>.
You need to put them in you local repo. You don't need to create a pom
for them.
/Johan
18 apr 2008 kl. 22.05 Lachlan Deck <la...@gmail.com> skrev:
> Hi there,
>
> I'm quite new to maven, but I would have thought this question would
> have been included on the FAQ page for maven - but it's not. I've
> googled around but mustn't be putting in the right search phrase or
> something... as obviously I've not found the answer :-)
>
> The simple question is how do I define dependencies on libs/*.jar
> for one of my projects where I have jars from a 3rd party (a payment
> gateway) in the project's lib folder. These libs live in svn with
> the project - not in a repo (and don't have a version or a pom of
> their own - they're just libs).
>
> i.e., they obviously need to be on the classpath + packaged with the
> final jar?
>
> I'm sure it's something simple... thanks in advance.
>
> with regards,
> --
>
> Lachlan Deck
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org