Yes, it includes the classes of the 3rd party lib directly extracted within
your classpath.

In my opinion... a project exists in two forms, source and package.  The
package can be referenced as a dependency in other projects.  The source is
the manager of what gets built into the package.  So, as long as my project
source maintains its relationship to the 3rd party library by way of pom
dependency to it as installed to my local system repository, it continues to
be very easily upgradable/maintainable.  Employing the mvn-shade plugin with
mvn-release plugin lets me then include the 3rd party lib cohesively within
my package, directly within the same classpath, so that no dependency
resolution issues arise on any users' ends.  In sum, the combination of the
acknowledgement of source and package being different things plus mvn-shade
lets me provide a functional library of my own by being agnostic to how it
becomes that way.

...but I'm only 1.5 weeks into my Maven love affair.  :)

Look up the mvn-shade plugin website.  It's an apache project.


SF




2010/3/30 Benoît Thiébault <[email protected]>

> I'm at chapter 11, I guess I read this part too quickly.
> Very good book by the way
>
> Regarding mvn-shade, I'm not really sure I understood what it does: does it
> include the classes of this third party library within my software package ?
> Seems good to me (even though I have no idea if this is a recommended best
> practice)
>
> Regards
> Ben
>
> Le 30 mars 2010 à 17:44, nicolas de loof a écrit :
>
> > you should read chapter 6, it explains the issue you get here :)
> >
> > The short term solution is to write a custom pom and use mvn
> > install:install-file
> >
> > If you plan to share the project with other in your company, or on the
> Net,
> > you will have to document this step and loose some advantages of Maven.
> > Working inside a company, the simpliest solution is to install Nexus (or
> any
> > other repository manager) and deploy your custom artifacts. For public
> > distribution, you will need to make the dependency publicly available.
> >
> > For legacy artifact this is really an issue. Creating yet another public
> > repo with some artifacts that may conflict with central and adding
> > <repositories> in your POM is not a good option (read
> >
> http://www.sonatype.com/people/2010/03/why-external-repos-are-being-phased-out-of-central/
> ).
> > The best way IMHO would be to propose the artifact for upload in central.
> >
> > Cheers,
> > Nicolas
> >
> > 2010/3/30 Wendy Smoak <[email protected]>
> >
> >> 2010/3/30 Benoît Thiébault <[email protected]>:
> >>> My software depends on an open source software, jlibeps (
> >> http://jlibeps.sourceforge.net/), but I can't find it in any Maven
> >> repository. This library seems not very maintained anymore, but it does
> what
> >> I need it to do. I don't want (yet) to host my own Maven repository and
> I
> >> was wondering what are my options here ? Should I create a POM file for
> the
> >> library and submit it to a Maven repository ? It seems (
> >>
> http://maven.apache.org/guides/mini/guide-central-repository-upload.html)
> >> the simplest way to do it would be to host is on an approved forge, but
> I
> >> don't own the project (that looks dead to me)...
> >>
> >> Eventually, you'll need to get it into some remote repository.
> >>
> >> For the moment, you can install it into your local repo with "mvn
> >> install:install-file -Dfile=... -DgeneratePom=true ..." .  (See the
> >> maven install plugin docs for the missing bits.)
> >>
> >> Unfortunately that means everyone who wants to build your project will
> >> also need to do that, but as a temporary fix it will get you past the
> >> missing dependency errors.
> >>
> >> --
> >> Wendy
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
>
> ----
> Benoît Thiébault
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to