Dependency management question

11 messages Options
Embed this post
Permalink
David Hoffer

Dependency management question

Reply Threaded More More options
Print post
Permalink
We have a large maven project where each component (or group of artifacts)
each uses dependencyManagement to control what versions are used and to
specify exclusions, etc.  At an individual component level this works well.

You can think of our project as being lots of new maven/components (A, B, C)
that act as a facade around a legacy component D...so D is at the bottom of
the dependency graph.

However we really need D's dependency management to be at the top level
too.  That is, lots of changes happen at the legacy component D and we don't
want to have to manually track dependency changes there and copy to the top
level.

Is there a way in maven to say, at the top-level, use D's dependencies for
me too?  If not, how hard would it be to write a plugin that does this?
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Yes, you could use the "import" scope at the top level to import dependency
management defined in another pom (which could be the ones in D).
http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies

/Anders

On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]> wrote:

> We have a large maven project where each component (or group of artifacts)
> each uses dependencyManagement to control what versions are used and to
> specify exclusions, etc.  At an individual component level this works well.
>
> You can think of our project as being lots of new maven/components (A, B,
> C)
> that act as a facade around a legacy component D...so D is at the bottom of
> the dependency graph.
>
> However we really need D's dependency management to be at the top level
> too.  That is, lots of changes happen at the legacy component D and we
> don't
> want to have to manually track dependency changes there and copy to the top
> level.
>
> Is there a way in maven to say, at the top-level, use D's dependencies for
> me too?  If not, how hard would it be to write a plugin that does this?
>
David Hoffer

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
That looks good.

Just to be clear, in that link it seemed to be a discussion of what to
possibly add to maven...are you saying that is in maven now?  Btw I use
2.1.0.

Also what do you think about http://code.google.com/p/assimilate/ mentioned
in the bottom of this link?

-Dave

On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]> wrote:

> Yes, you could use the "import" scope at the top level to import dependency
> management defined in another pom (which could be the ones in D).
> http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
>
> /Anders
>
> On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]> wrote:
>
> > We have a large maven project where each component (or group of
> artifacts)
> > each uses dependencyManagement to control what versions are used and to
> > specify exclusions, etc.  At an individual component level this works
> well.
> >
> > You can think of our project as being lots of new maven/components (A, B,
> > C)
> > that act as a facade around a legacy component D...so D is at the bottom
> of
> > the dependency graph.
> >
> > However we really need D's dependency management to be at the top level
> > too.  That is, lots of changes happen at the legacy component D and we
> > don't
> > want to have to manually track dependency changes there and copy to the
> top
> > level.
> >
> > Is there a way in maven to say, at the top-level, use D's dependencies
> for
> > me too?  If not, how hard would it be to write a plugin that does this?
> >
>
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear enough. Have
a look here:
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies

The import support is different that what the assimilate gives you. The one
described above is for dep management, while the assimilate plugin are for
actual dependencies.

/Anders

On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]> wrote:

> That looks good.
>
> Just to be clear, in that link it seemed to be a discussion of what to
> possibly add to maven...are you saying that is in maven now?  Btw I use
> 2.1.0.
>
> Also what do you think about http://code.google.com/p/assimilate/mentioned
> in the bottom of this link?
>
> -Dave
>
> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]> wrote:
>
> > Yes, you could use the "import" scope at the top level to import
> dependency
> > management defined in another pom (which could be the ones in D).
> > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> >
> > /Anders
> >
> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]> wrote:
> >
> > > We have a large maven project where each component (or group of
> > artifacts)
> > > each uses dependencyManagement to control what versions are used and to
> > > specify exclusions, etc.  At an individual component level this works
> > well.
> > >
> > > You can think of our project as being lots of new maven/components (A,
> B,
> > > C)
> > > that act as a facade around a legacy component D...so D is at the
> bottom
> > of
> > > the dependency graph.
> > >
> > > However we really need D's dependency management to be at the top level
> > > too.  That is, lots of changes happen at the legacy component D and we
> > > don't
> > > want to have to manually track dependency changes there and copy to the
> > top
> > > level.
> > >
> > > Is there a way in maven to say, at the top-level, use D's dependencies
> > for
> > > me too?  If not, how hard would it be to write a plugin that does this?
> > >
> >
>
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Regarding the feature the assimilate plugin gives you, I would do like this
instead:
http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/

/Anders

On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]> wrote:

> Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear enough.
> Have a look here:
>
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
>
> The import support is different that what the assimilate gives you. The one
> described above is for dep management, while the assimilate plugin are for
> actual dependencies.
>
> /Anders
>
> On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]> wrote:
>
>> That looks good.
>>
>> Just to be clear, in that link it seemed to be a discussion of what to
>> possibly add to maven...are you saying that is in maven now?  Btw I use
>> 2.1.0.
>>
>> Also what do you think about http://code.google.com/p/assimilate/mentioned
>> in the bottom of this link?
>>
>> -Dave
>>
>> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]> wrote:
>>
>> > Yes, you could use the "import" scope at the top level to import
>> dependency
>> > management defined in another pom (which could be the ones in D).
>> > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
>> >
>> > /Anders
>> >
>> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]> wrote:
>> >
>> > > We have a large maven project where each component (or group of
>> > artifacts)
>> > > each uses dependencyManagement to control what versions are used and
>> to
>> > > specify exclusions, etc.  At an individual component level this works
>> > well.
>> > >
>> > > You can think of our project as being lots of new maven/components (A,
>> B,
>> > > C)
>> > > that act as a facade around a legacy component D...so D is at the
>> bottom
>> > of
>> > > the dependency graph.
>> > >
>> > > However we really need D's dependency management to be at the top
>> level
>> > > too.  That is, lots of changes happen at the legacy component D and we
>> > > don't
>> > > want to have to manually track dependency changes there and copy to
>> the
>> > top
>> > > level.
>> > >
>> > > Is there a way in maven to say, at the top-level, use D's dependencies
>> > for
>> > > me too?  If not, how hard would it be to write a plugin that does
>> this?
>> > >
>> >
>>
>
>
David Hoffer

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
I just ran into a problem with the import scope feature.  It does not
resolve properly.  I.e.

Project B uses import scope feature on Project A.
Project C uses import scope feature on Project B.

Project C cannot build because it says that A does not exist.

I'm using maven 2.1.0, has this been fixed in later versions?  Is there a
way to make this work?

-Dave


On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]> wrote:

> Regarding the feature the assimilate plugin gives you, I would do like this
> instead:
>
> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
>
> /Anders
>
> On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]> wrote:
>
> > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear enough.
> > Have a look here:
> >
> >
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
> >
> > The import support is different that what the assimilate gives you. The
> one
> > described above is for dep management, while the assimilate plugin are
> for
> > actual dependencies.
> >
> > /Anders
> >
> > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]> wrote:
> >
> >> That looks good.
> >>
> >> Just to be clear, in that link it seemed to be a discussion of what to
> >> possibly add to maven...are you saying that is in maven now?  Btw I use
> >> 2.1.0.
> >>
> >> Also what do you think about
> http://code.google.com/p/assimilate/mentioned
> >> in the bottom of this link?
> >>
> >> -Dave
> >>
> >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]>
> wrote:
> >>
> >> > Yes, you could use the "import" scope at the top level to import
> >> dependency
> >> > management defined in another pom (which could be the ones in D).
> >> > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> >> >
> >> > /Anders
> >> >
> >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]>
> wrote:
> >> >
> >> > > We have a large maven project where each component (or group of
> >> > artifacts)
> >> > > each uses dependencyManagement to control what versions are used and
> >> to
> >> > > specify exclusions, etc.  At an individual component level this
> works
> >> > well.
> >> > >
> >> > > You can think of our project as being lots of new maven/components
> (A,
> >> B,
> >> > > C)
> >> > > that act as a facade around a legacy component D...so D is at the
> >> bottom
> >> > of
> >> > > the dependency graph.
> >> > >
> >> > > However we really need D's dependency management to be at the top
> >> level
> >> > > too.  That is, lots of changes happen at the legacy component D and
> we
> >> > > don't
> >> > > want to have to manually track dependency changes there and copy to
> >> the
> >> > top
> >> > > level.
> >> > >
> >> > > Is there a way in maven to say, at the top-level, use D's
> dependencies
> >> > for
> >> > > me too?  If not, how hard would it be to write a plugin that does
> >> this?
> >> > >
> >> >
> >>
> >
> >
>
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
I assume that project B builds just fine?
Never had import dependency in two levels like you have, so I don't know if
it's a known bug being fixed. Try Maven 2.2.1 and see, or search jira!

/Anders

On Mon, Nov 9, 2009 at 20:15, David Hoffer <[hidden email]> wrote:

> I just ran into a problem with the import scope feature.  It does not
> resolve properly.  I.e.
>
> Project B uses import scope feature on Project A.
> Project C uses import scope feature on Project B.
>
> Project C cannot build because it says that A does not exist.
>
> I'm using maven 2.1.0, has this been fixed in later versions?  Is there a
> way to make this work?
>
> -Dave
>
>
> On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]> wrote:
>
> > Regarding the feature the assimilate plugin gives you, I would do like
> this
> > instead:
> >
> >
> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
> >
> > /Anders
> >
> > On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]> wrote:
> >
> > > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear enough.
> > > Have a look here:
> > >
> > >
> >
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
> > >
> > > The import support is different that what the assimilate gives you. The
> > one
> > > described above is for dep management, while the assimilate plugin are
> > for
> > > actual dependencies.
> > >
> > > /Anders
> > >
> > > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]> wrote:
> > >
> > >> That looks good.
> > >>
> > >> Just to be clear, in that link it seemed to be a discussion of what to
> > >> possibly add to maven...are you saying that is in maven now?  Btw I
> use
> > >> 2.1.0.
> > >>
> > >> Also what do you think about
> > http://code.google.com/p/assimilate/mentioned
> > >> in the bottom of this link?
> > >>
> > >> -Dave
> > >>
> > >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]>
> > wrote:
> > >>
> > >> > Yes, you could use the "import" scope at the top level to import
> > >> dependency
> > >> > management defined in another pom (which could be the ones in D).
> > >> >
> http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> > >> >
> > >> > /Anders
> > >> >
> > >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]>
> > wrote:
> > >> >
> > >> > > We have a large maven project where each component (or group of
> > >> > artifacts)
> > >> > > each uses dependencyManagement to control what versions are used
> and
> > >> to
> > >> > > specify exclusions, etc.  At an individual component level this
> > works
> > >> > well.
> > >> > >
> > >> > > You can think of our project as being lots of new maven/components
> > (A,
> > >> B,
> > >> > > C)
> > >> > > that act as a facade around a legacy component D...so D is at the
> > >> bottom
> > >> > of
> > >> > > the dependency graph.
> > >> > >
> > >> > > However we really need D's dependency management to be at the top
> > >> level
> > >> > > too.  That is, lots of changes happen at the legacy component D
> and
> > we
> > >> > > don't
> > >> > > want to have to manually track dependency changes there and copy
> to
> > >> the
> > >> > top
> > >> > > level.
> > >> > >
> > >> > > Is there a way in maven to say, at the top-level, use D's
> > dependencies
> > >> > for
> > >> > > me too?  If not, how hard would it be to write a plugin that does
> > >> this?
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>
David Hoffer

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Yes, building project B is just fine...I thought I had a working solution
using import scope.  Then other developers in our company tried building C
and reported the failure.  What I note in the console error is:

Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException:
Unable
to download the artifact from any repository

com.issinc.webtas:webtas-parent:pom:4.0-SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)

(Where webtas-parent is A.)  If I am to believe this report...its looking in
the wrong repo.  We have our own corporate repo, our settings.xml points all
requests to our internal URL so it should not look at
http://repo1.maven.org/maven2 directly.

Any thoughts?

-Dave




On Mon, Nov 9, 2009 at 12:19 PM, Anders Hammar <[hidden email]> wrote:

> I assume that project B builds just fine?
> Never had import dependency in two levels like you have, so I don't know if
> it's a known bug being fixed. Try Maven 2.2.1 and see, or search jira!
>
> /Anders
>
> On Mon, Nov 9, 2009 at 20:15, David Hoffer <[hidden email]> wrote:
>
> > I just ran into a problem with the import scope feature.  It does not
> > resolve properly.  I.e.
> >
> > Project B uses import scope feature on Project A.
> > Project C uses import scope feature on Project B.
> >
> > Project C cannot build because it says that A does not exist.
> >
> > I'm using maven 2.1.0, has this been fixed in later versions?  Is there a
> > way to make this work?
> >
> > -Dave
> >
> >
> > On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]>
> wrote:
> >
> > > Regarding the feature the assimilate plugin gives you, I would do like
> > this
> > > instead:
> > >
> > >
> >
> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
> > >
> > > /Anders
> > >
> > > On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]> wrote:
> > >
> > > > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear
> enough.
> > > > Have a look here:
> > > >
> > > >
> > >
> >
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
> > > >
> > > > The import support is different that what the assimilate gives you.
> The
> > > one
> > > > described above is for dep management, while the assimilate plugin
> are
> > > for
> > > > actual dependencies.
> > > >
> > > > /Anders
> > > >
> > > > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]>
> wrote:
> > > >
> > > >> That looks good.
> > > >>
> > > >> Just to be clear, in that link it seemed to be a discussion of what
> to
> > > >> possibly add to maven...are you saying that is in maven now?  Btw I
> > use
> > > >> 2.1.0.
> > > >>
> > > >> Also what do you think about
> > > http://code.google.com/p/assimilate/mentioned
> > > >> in the bottom of this link?
> > > >>
> > > >> -Dave
> > > >>
> > > >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]>
> > > wrote:
> > > >>
> > > >> > Yes, you could use the "import" scope at the top level to import
> > > >> dependency
> > > >> > management defined in another pom (which could be the ones in D).
> > > >> >
> > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> > > >> >
> > > >> > /Anders
> > > >> >
> > > >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]>
> > > wrote:
> > > >> >
> > > >> > > We have a large maven project where each component (or group of
> > > >> > artifacts)
> > > >> > > each uses dependencyManagement to control what versions are used
> > and
> > > >> to
> > > >> > > specify exclusions, etc.  At an individual component level this
> > > works
> > > >> > well.
> > > >> > >
> > > >> > > You can think of our project as being lots of new
> maven/components
> > > (A,
> > > >> B,
> > > >> > > C)
> > > >> > > that act as a facade around a legacy component D...so D is at
> the
> > > >> bottom
> > > >> > of
> > > >> > > the dependency graph.
> > > >> > >
> > > >> > > However we really need D's dependency management to be at the
> top
> > > >> level
> > > >> > > too.  That is, lots of changes happen at the legacy component D
> > and
> > > we
> > > >> > > don't
> > > >> > > want to have to manually track dependency changes there and copy
> > to
> > > >> the
> > > >> > top
> > > >> > > level.
> > > >> > >
> > > >> > > Is there a way in maven to say, at the top-level, use D's
> > > dependencies
> > > >> > for
> > > >> > > me too?  If not, how hard would it be to write a plugin that
> does
> > > >> this?
> > > >> > >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Sorry, no. I would investigate why it's looking in central first of all
though.

/Anders

On Mon, Nov 9, 2009 at 20:25, David Hoffer <[hidden email]> wrote:

> Yes, building project B is just fine...I thought I had a working solution
> using import scope.  Then other developers in our company tried building C
> and reported the failure.  What I note in the console error is:
>
> Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException:
> Unable
> to download the artifact from any repository
>
> com.issinc.webtas:webtas-parent:pom:4.0-SNAPSHOT
>
> from the specified remote repositories:
>  central (http://repo1.maven.org/maven2)
>
> (Where webtas-parent is A.)  If I am to believe this report...its looking
> in
> the wrong repo.  We have our own corporate repo, our settings.xml points
> all
> requests to our internal URL so it should not look at
> http://repo1.maven.org/maven2 directly.
>
> Any thoughts?
>
> -Dave
>
>
>
>
> On Mon, Nov 9, 2009 at 12:19 PM, Anders Hammar <[hidden email]> wrote:
>
> > I assume that project B builds just fine?
> > Never had import dependency in two levels like you have, so I don't know
> if
> > it's a known bug being fixed. Try Maven 2.2.1 and see, or search jira!
> >
> > /Anders
> >
> > On Mon, Nov 9, 2009 at 20:15, David Hoffer <[hidden email]> wrote:
> >
> > > I just ran into a problem with the import scope feature.  It does not
> > > resolve properly.  I.e.
> > >
> > > Project B uses import scope feature on Project A.
> > > Project C uses import scope feature on Project B.
> > >
> > > Project C cannot build because it says that A does not exist.
> > >
> > > I'm using maven 2.1.0, has this been fixed in later versions?  Is there
> a
> > > way to make this work?
> > >
> > > -Dave
> > >
> > >
> > > On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]>
> > wrote:
> > >
> > > > Regarding the feature the assimilate plugin gives you, I would do
> like
> > > this
> > > > instead:
> > > >
> > > >
> > >
> >
> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
> > > >
> > > > /Anders
> > > >
> > > > On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]>
> wrote:
> > > >
> > > > > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear
> > enough.
> > > > > Have a look here:
> > > > >
> > > > >
> > > >
> > >
> >
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
> > > > >
> > > > > The import support is different that what the assimilate gives you.
> > The
> > > > one
> > > > > described above is for dep management, while the assimilate plugin
> > are
> > > > for
> > > > > actual dependencies.
> > > > >
> > > > > /Anders
> > > > >
> > > > > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]>
> > wrote:
> > > > >
> > > > >> That looks good.
> > > > >>
> > > > >> Just to be clear, in that link it seemed to be a discussion of
> what
> > to
> > > > >> possibly add to maven...are you saying that is in maven now?  Btw
> I
> > > use
> > > > >> 2.1.0.
> > > > >>
> > > > >> Also what do you think about
> > > > http://code.google.com/p/assimilate/mentioned
> > > > >> in the bottom of this link?
> > > > >>
> > > > >> -Dave
> > > > >>
> > > > >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]>
> > > > wrote:
> > > > >>
> > > > >> > Yes, you could use the "import" scope at the top level to import
> > > > >> dependency
> > > > >> > management defined in another pom (which could be the ones in
> D).
> > > > >> >
> > > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> > > > >> >
> > > > >> > /Anders
> > > > >> >
> > > > >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]>
> > > > wrote:
> > > > >> >
> > > > >> > > We have a large maven project where each component (or group
> of
> > > > >> > artifacts)
> > > > >> > > each uses dependencyManagement to control what versions are
> used
> > > and
> > > > >> to
> > > > >> > > specify exclusions, etc.  At an individual component level
> this
> > > > works
> > > > >> > well.
> > > > >> > >
> > > > >> > > You can think of our project as being lots of new
> > maven/components
> > > > (A,
> > > > >> B,
> > > > >> > > C)
> > > > >> > > that act as a facade around a legacy component D...so D is at
> > the
> > > > >> bottom
> > > > >> > of
> > > > >> > > the dependency graph.
> > > > >> > >
> > > > >> > > However we really need D's dependency management to be at the
> > top
> > > > >> level
> > > > >> > > too.  That is, lots of changes happen at the legacy component
> D
> > > and
> > > > we
> > > > >> > > don't
> > > > >> > > want to have to manually track dependency changes there and
> copy
> > > to
> > > > >> the
> > > > >> > top
> > > > >> > > level.
> > > > >> > >
> > > > >> > > Is there a way in maven to say, at the top-level, use D's
> > > > dependencies
> > > > >> > for
> > > > >> > > me too?  If not, how hard would it be to write a plugin that
> > does
> > > > >> this?
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>
Anders Hammar

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Ah, and as always. It might help building a very simple project to reproduce
this. Removing all unimportant parts. If it then works, you know it's not a
Maven bug. If it still doesn't work, you have an example that reproduces the
issue that you can attach to the jira. That increases the likelihood to get
it fixed.

/Anders

On Mon, Nov 9, 2009 at 20:37, Anders Hammar <[hidden email]> wrote:

> Sorry, no. I would investigate why it's looking in central first of all
> though.
>
> /Anders
>
>
> On Mon, Nov 9, 2009 at 20:25, David Hoffer <[hidden email]> wrote:
>
>> Yes, building project B is just fine...I thought I had a working solution
>> using import scope.  Then other developers in our company tried building C
>> and reported the failure.  What I note in the console error is:
>>
>> Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException:
>> Unable
>> to download the artifact from any repository
>>
>> com.issinc.webtas:webtas-parent:pom:4.0-SNAPSHOT
>>
>> from the specified remote repositories:
>>  central (http://repo1.maven.org/maven2)
>>
>> (Where webtas-parent is A.)  If I am to believe this report...its looking
>> in
>> the wrong repo.  We have our own corporate repo, our settings.xml points
>> all
>> requests to our internal URL so it should not look at
>> http://repo1.maven.org/maven2 directly.
>>
>> Any thoughts?
>>
>> -Dave
>>
>>
>>
>>
>> On Mon, Nov 9, 2009 at 12:19 PM, Anders Hammar <[hidden email]> wrote:
>>
>> > I assume that project B builds just fine?
>> > Never had import dependency in two levels like you have, so I don't know
>> if
>> > it's a known bug being fixed. Try Maven 2.2.1 and see, or search jira!
>> >
>> > /Anders
>> >
>> > On Mon, Nov 9, 2009 at 20:15, David Hoffer <[hidden email]> wrote:
>> >
>> > > I just ran into a problem with the import scope feature.  It does not
>> > > resolve properly.  I.e.
>> > >
>> > > Project B uses import scope feature on Project A.
>> > > Project C uses import scope feature on Project B.
>> > >
>> > > Project C cannot build because it says that A does not exist.
>> > >
>> > > I'm using maven 2.1.0, has this been fixed in later versions?  Is
>> there a
>> > > way to make this work?
>> > >
>> > > -Dave
>> > >
>> > >
>> > > On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]>
>> > wrote:
>> > >
>> > > > Regarding the feature the assimilate plugin gives you, I would do
>> like
>> > > this
>> > > > instead:
>> > > >
>> > > >
>> > >
>> >
>> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
>> > > >
>> > > > /Anders
>> > > >
>> > > > On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]>
>> wrote:
>> > > >
>> > > > > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear
>> > enough.
>> > > > > Have a look here:
>> > > > >
>> > > > >
>> > > >
>> > >
>> >
>> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
>> > > > >
>> > > > > The import support is different that what the assimilate gives
>> you.
>> > The
>> > > > one
>> > > > > described above is for dep management, while the assimilate plugin
>> > are
>> > > > for
>> > > > > actual dependencies.
>> > > > >
>> > > > > /Anders
>> > > > >
>> > > > > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]>
>> > wrote:
>> > > > >
>> > > > >> That looks good.
>> > > > >>
>> > > > >> Just to be clear, in that link it seemed to be a discussion of
>> what
>> > to
>> > > > >> possibly add to maven...are you saying that is in maven now?  Btw
>> I
>> > > use
>> > > > >> 2.1.0.
>> > > > >>
>> > > > >> Also what do you think about
>> > > > http://code.google.com/p/assimilate/mentioned
>> > > > >> in the bottom of this link?
>> > > > >>
>> > > > >> -Dave
>> > > > >>
>> > > > >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <[hidden email]
>> >
>> > > > wrote:
>> > > > >>
>> > > > >> > Yes, you could use the "import" scope at the top level to
>> import
>> > > > >> dependency
>> > > > >> > management defined in another pom (which could be the ones in
>> D).
>> > > > >> >
>> > > http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
>> > > > >> >
>> > > > >> > /Anders
>> > > > >> >
>> > > > >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <[hidden email]
>> >
>> > > > wrote:
>> > > > >> >
>> > > > >> > > We have a large maven project where each component (or group
>> of
>> > > > >> > artifacts)
>> > > > >> > > each uses dependencyManagement to control what versions are
>> used
>> > > and
>> > > > >> to
>> > > > >> > > specify exclusions, etc.  At an individual component level
>> this
>> > > > works
>> > > > >> > well.
>> > > > >> > >
>> > > > >> > > You can think of our project as being lots of new
>> > maven/components
>> > > > (A,
>> > > > >> B,
>> > > > >> > > C)
>> > > > >> > > that act as a facade around a legacy component D...so D is at
>> > the
>> > > > >> bottom
>> > > > >> > of
>> > > > >> > > the dependency graph.
>> > > > >> > >
>> > > > >> > > However we really need D's dependency management to be at the
>> > top
>> > > > >> level
>> > > > >> > > too.  That is, lots of changes happen at the legacy component
>> D
>> > > and
>> > > > we
>> > > > >> > > don't
>> > > > >> > > want to have to manually track dependency changes there and
>> copy
>> > > to
>> > > > >> the
>> > > > >> > top
>> > > > >> > > level.
>> > > > >> > >
>> > > > >> > > Is there a way in maven to say, at the top-level, use D's
>> > > > dependencies
>> > > > >> > for
>> > > > >> > > me too?  If not, how hard would it be to write a plugin that
>> > does
>> > > > >> this?
>> > > > >> > >
>> > > > >> >
>> > > > >>
>> > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>
David Hoffer

Re: Dependency management question

Reply Threaded More More options
Print post
Permalink
Good idea for sure.

I tried maven v2.2.1 and it had the same problem.  I'm going to try to use A
as my parent for now.  A is more than I want/need as my parent but should
work.

-Dave

On Mon, Nov 9, 2009 at 12:39 PM, Anders Hammar <[hidden email]> wrote:

> Ah, and as always. It might help building a very simple project to
> reproduce
> this. Removing all unimportant parts. If it then works, you know it's not a
> Maven bug. If it still doesn't work, you have an example that reproduces
> the
> issue that you can attach to the jira. That increases the likelihood to get
> it fixed.
>
> /Anders
>
> On Mon, Nov 9, 2009 at 20:37, Anders Hammar <[hidden email]> wrote:
>
> > Sorry, no. I would investigate why it's looking in central first of all
> > though.
> >
> > /Anders
> >
> >
> > On Mon, Nov 9, 2009 at 20:25, David Hoffer <[hidden email]> wrote:
> >
> >> Yes, building project B is just fine...I thought I had a working
> solution
> >> using import scope.  Then other developers in our company tried building
> C
> >> and reported the failure.  What I note in the console error is:
> >>
> >> Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException:
> >> Unable
> >> to download the artifact from any repository
> >>
> >> com.issinc.webtas:webtas-parent:pom:4.0-SNAPSHOT
> >>
> >> from the specified remote repositories:
> >>  central (http://repo1.maven.org/maven2)
> >>
> >> (Where webtas-parent is A.)  If I am to believe this report...its
> looking
> >> in
> >> the wrong repo.  We have our own corporate repo, our settings.xml points
> >> all
> >> requests to our internal URL so it should not look at
> >> http://repo1.maven.org/maven2 directly.
> >>
> >> Any thoughts?
> >>
> >> -Dave
> >>
> >>
> >>
> >>
> >> On Mon, Nov 9, 2009 at 12:19 PM, Anders Hammar <[hidden email]>
> wrote:
> >>
> >> > I assume that project B builds just fine?
> >> > Never had import dependency in two levels like you have, so I don't
> know
> >> if
> >> > it's a known bug being fixed. Try Maven 2.2.1 and see, or search jira!
> >> >
> >> > /Anders
> >> >
> >> > On Mon, Nov 9, 2009 at 20:15, David Hoffer <[hidden email]>
> wrote:
> >> >
> >> > > I just ran into a problem with the import scope feature.  It does
> not
> >> > > resolve properly.  I.e.
> >> > >
> >> > > Project B uses import scope feature on Project A.
> >> > > Project C uses import scope feature on Project B.
> >> > >
> >> > > Project C cannot build because it says that A does not exist.
> >> > >
> >> > > I'm using maven 2.1.0, has this been fixed in later versions?  Is
> >> there a
> >> > > way to make this work?
> >> > >
> >> > > -Dave
> >> > >
> >> > >
> >> > > On Sat, Nov 7, 2009 at 11:13 AM, Anders Hammar <[hidden email]>
> >> > wrote:
> >> > >
> >> > > > Regarding the feature the assimilate plugin gives you, I would do
> >> like
> >> > > this
> >> > > > instead:
> >> > > >
> >> > > >
> >> > >
> >> >
> >>
> http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-grouping-dependencies/
> >> > > >
> >> > > > /Anders
> >> > > >
> >> > > > On Sat, Nov 7, 2009 at 19:07, Anders Hammar <[hidden email]>
> >> wrote:
> >> > > >
> >> > > > > Yes, it exists in Maven 2.0.9+. Sorry, if the link wasn't clear
> >> > enough.
> >> > > > > Have a look here:
> >> > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
> >> > > > >
> >> > > > > The import support is different that what the assimilate gives
> >> you.
> >> > The
> >> > > > one
> >> > > > > described above is for dep management, while the assimilate
> plugin
> >> > are
> >> > > > for
> >> > > > > actual dependencies.
> >> > > > >
> >> > > > > /Anders
> >> > > > >
> >> > > > > On Sat, Nov 7, 2009 at 17:41, David Hoffer <[hidden email]>
> >> > wrote:
> >> > > > >
> >> > > > >> That looks good.
> >> > > > >>
> >> > > > >> Just to be clear, in that link it seemed to be a discussion of
> >> what
> >> > to
> >> > > > >> possibly add to maven...are you saying that is in maven now?
>  Btw
> >> I
> >> > > use
> >> > > > >> 2.1.0.
> >> > > > >>
> >> > > > >> Also what do you think about
> >> > > > http://code.google.com/p/assimilate/mentioned
> >> > > > >> in the bottom of this link?
> >> > > > >>
> >> > > > >> -Dave
> >> > > > >>
> >> > > > >> On Sat, Nov 7, 2009 at 9:10 AM, Anders Hammar <
> [hidden email]
> >> >
> >> > > > wrote:
> >> > > > >>
> >> > > > >> > Yes, you could use the "import" scope at the top level to
> >> import
> >> > > > >> dependency
> >> > > > >> > management defined in another pom (which could be the ones in
> >> D).
> >> > > > >> >
> >> > >
> http://docs.codehaus.org/display/MAVEN/Importing+Managed+Dependencies
> >> > > > >> >
> >> > > > >> > /Anders
> >> > > > >> >
> >> > > > >> > On Sat, Nov 7, 2009 at 15:42, David Hoffer <
> [hidden email]
> >> >
> >> > > > wrote:
> >> > > > >> >
> >> > > > >> > > We have a large maven project where each component (or
> group
> >> of
> >> > > > >> > artifacts)
> >> > > > >> > > each uses dependencyManagement to control what versions are
> >> used
> >> > > and
> >> > > > >> to
> >> > > > >> > > specify exclusions, etc.  At an individual component level
> >> this
> >> > > > works
> >> > > > >> > well.
> >> > > > >> > >
> >> > > > >> > > You can think of our project as being lots of new
> >> > maven/components
> >> > > > (A,
> >> > > > >> B,
> >> > > > >> > > C)
> >> > > > >> > > that act as a facade around a legacy component D...so D is
> at
> >> > the
> >> > > > >> bottom
> >> > > > >> > of
> >> > > > >> > > the dependency graph.
> >> > > > >> > >
> >> > > > >> > > However we really need D's dependency management to be at
> the
> >> > top
> >> > > > >> level
> >> > > > >> > > too.  That is, lots of changes happen at the legacy
> component
> >> D
> >> > > and
> >> > > > we
> >> > > > >> > > don't
> >> > > > >> > > want to have to manually track dependency changes there and
> >> copy
> >> > > to
> >> > > > >> the
> >> > > > >> > top
> >> > > > >> > > level.
> >> > > > >> > >
> >> > > > >> > > Is there a way in maven to say, at the top-level, use D's
> >> > > > dependencies
> >> > > > >> > for
> >> > > > >> > > me too?  If not, how hard would it be to write a plugin
> that
> >> > does
> >> > > > >> this?
> >> > > > >> > >
> >> > > > >> >
> >> > > > >>
> >> > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>