RE: dependencyManagement help
Lachlan Deck wrote: Hi there, I'm trying to utilise dependency management but am obviously missing something. I've got /pom.xml /frameworks/pom.xml /frameworks/fwk1 ... /frameworks/fwkN /app1/pom.xml -- root parent pom -- dependencyManagement dependencies dependency groupId.../groupId artifactId.../artifactId type.../type version.../version /dependency /dependencies /dependencyManagement -- /frameworks/pom.xml -- dependencies dependency groupId.../groupId artifactId.../artifactId scopeprovided/scope /dependency /dependencies And so forth. Previously I had no dependencyManagement at all. So the only mention of the version of a dependency is in the management section. However, now when I do a 'mvn clean' I get the following. The two artifacts to not match. An artifact is defined by groupId, artifactId, type and optional classifier. The type defaults to jar. This might give you an idea ;-) [snip] - Jörg - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: dependencyManagement help
Hi there, On 24/04/2008, at 4:37 PM, Jörg Schaible wrote: -- root parent pom -- dependencyManagement dependencies dependency groupId.../groupId artifactId.../artifactId type.../type version.../version /dependency /dependencies /dependencyManagement -- /frameworks/pom.xml -- dependencies dependency groupId.../groupId artifactId.../artifactId scopeprovided/scope /dependency /dependencies And so forth. Previously I had no dependencyManagement at all. So the only mention of the version of a dependency is in the management section. However, now when I do a 'mvn clean' I get the following. The two artifacts to not match. An artifact is defined by groupId, artifactId, type and optional classifier. The type defaults to jar. This might give you an idea ;-) Then I'm not seeing what purpose the dependencyManagement section serves if I've still gotta declare pretty much everything apart from 'version' in other dependency declarations? with regards, -- Lachlan Deck - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: dependencyManagement help
Hello, I think dep.mgmt. is meant to declare if an artifact with this groupId/artifactId appears somewhere in the dependency tree, include the version stated here; but don't include it by default. For instance, if your module A depends on module B which in turn depends on module C 1.0 but you'd like to use C 2.0, you can put it in A's dependencyManagement. This is probably good practice as C is not a direct dependency of A. (In particular, if a new version of B comes out that no longer requires C, C will be dropped altogether and not included from A). Greetings, David -Original Message- From: Lachlan Deck [mailto:[EMAIL PROTECTED] Sent: 24 April 2008 08:55 To: Maven Users List Subject: Re: dependencyManagement help Hi there, On 24/04/2008, at 4:37 PM, Jörg Schaible wrote: -- root parent pom -- dependencyManagement dependencies dependency groupId.../groupId artifactId.../artifactId type.../type version.../version /dependency /dependencies /dependencyManagement -- /frameworks/pom.xml -- dependencies dependency groupId.../groupId artifactId.../artifactId scopeprovided/scope /dependency /dependencies And so forth. Previously I had no dependencyManagement at all. So the only mention of the version of a dependency is in the management section. However, now when I do a 'mvn clean' I get the following. The two artifacts to not match. An artifact is defined by groupId, artifactId, type and optional classifier. The type defaults to jar. This might give you an idea ;-) Then I'm not seeing what purpose the dependencyManagement section serves if I've still gotta declare pretty much everything apart from 'version' in other dependency declarations? with regards, -- Lachlan Deck - 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]
RE: dependencyManagement help
Lachlan Deck wrote: Hi there, On 24/04/2008, at 4:37 PM, Jörg Schaible wrote: -- root parent pom -- dependencyManagement dependencies dependency groupId.../groupId artifactId.../artifactId type.../type version.../version /dependency /dependencies /dependencyManagement -- /frameworks/pom.xml -- dependencies dependency groupId.../groupId artifactId.../artifactId scopeprovided/scope /dependency /dependencies And so forth. Previously I had no dependencyManagement at all. So the only mention of the version of a dependency is in the management section. However, now when I do a 'mvn clean' I get the following. The two artifacts to not match. An artifact is defined by groupId, artifactId, type and optional classifier. The type defaults to jar. This might give you an idea ;-) Then I'm not seeing what purpose the dependencyManagement section serves if I've still gotta declare pretty much everything apart from 'version' in other dependency declarations? You inherit version and scope. scope ensures that the artifact is used in the proper way and version will ensure that it is used everywhere in the right version. - Jörg - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: dependencyManagement help
Then I'm not seeing what purpose the dependencyManagement section serves if I've still gotta declare pretty much everything apart from 'version' in other dependency declarations? The group/artifact/classifier/type are part of the identifier and those must match. The scope and version can be centrally controlled in the depMgt section and this saves you from having potentially conflicting versions in multiple modules. It also makes it easier to upgrade later. Additionally, depMgt will also override any transitive dependency versions (even if you don't directly use them) so it's a way to manage those as well. -- Brian Fox Apache Maven PMC http://blogs.sonatype.com/brian/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
dependencyManagement help
Hi there, I'm trying to utilise dependency management but am obviously missing something. I've got /pom.xml /frameworks/pom.xml /frameworks/fwk1 ... /frameworks/fwkN /app1/pom.xml -- root parent pom -- dependencyManagement dependencies dependency groupId.../groupId artifactId.../artifactId type.../type version.../version /dependency /dependencies /dependencyManagement -- /frameworks/pom.xml -- dependencies dependency groupId.../groupId artifactId.../artifactId scopeprovided/scope /dependency /dependencies And so forth. Previously I had no dependencyManagement at all. So the only mention of the version of a dependency is in the management section. However, now when I do a 'mvn clean' I get the following. What am I missing? Thanks. Obviously - adding the version to the /frameworks/pom.xml's dependencies works but I thought that was the whole idea behind the dependencyManagement declarations in the parent pom? Or is that only relevant for child poms where the packaging is not of type pom? $ mvn clean [INFO] Scanning for projects... [INFO] [ERROR] FATAL ERROR [INFO] [INFO] Error building POM (may not be this project's POM). Project ID: foo.bar:frameworks POM Location: .../foobar/frameworks/pom.xml Validation Messages: [0] 'dependencies.dependency.version' is missing for ... [1] 'dependencies.dependency.version' is missing for ... [2] 'dependencies.dependency.version' is missing for ... [3] 'dependencies.dependency.version' is missing for ... Reason: Failed to validate POM for project foo.bar:frameworks at .../ foobar/frameworks/pom.xml [INFO] [INFO] Trace org.apache.maven.reactor.MavenExecutionException: Failed to validate POM for project foo.bar:frameworks at .../foobar/frameworks/pom.xml at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:376) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:289) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126) at org.apache.maven.cli.MavenCli.main(MavenCli.java:282) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java: 430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) with regards, -- Lachlan Deck - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]