In the dependency and enforcer plugins where I potentially need everything, I just ask for test to be resolved and then i pick the elements i need.
On Sun, Aug 2, 2009 at 2:28 PM, Benjamin Bentmann<[email protected]> wrote: > Brian Fox wrote: > >> I think those bugs may be due to the plugin using the runtime scope >> not the runtime classpath? The runtime classpath should include the >> compile scope artifacts. > > Let my try to describe the problem in more detail. Assume the following POM > snippet for the project that wants to employ the plugin: > > <dependencies> > <dependency> > <groupId>org.apache.maven</groupId> > <artifactId>maven-plugin-api</artifactId> > <version>2.0</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>org.apache.maven</groupId> > <artifactId>maven-model</artifactId> > <version>2.0</version> > <scope>runtime</scope> > </dependency> > </dependencies> > > Further assume our mojo looks basically like > > /** @parameter default-value="${project.compileClasspathElements}" */ > private List<String> compileClassPath; > > /** @parameter default-value="${project.runtimeClasspathElements}" */ > private List<String> runtimeClassPath; > > public void execute() > { > getLog().info( "Compile: " + compileClassPath ); > getLog().info( "Runtime: " + runtimeClassPath ); > } > > Now, annotating the mojo with "@requiresDependencyResolution runtime" and > running it on the above POM will make it output > > Compile: [<basedir>\target\classes] > Runtime: [<basedir>\target\classes, ...\maven-model-2.0.jar, > ...\plexus-utils-1.0.4.jar] > > Note that the project dependency with provided scope, > maven-plugin-api-2.0-jar, appears neither on the compile class path nor on > the runtime class path. The reason being that "@requiresDependencyResolution > runtime" resolves only dependencies with scope "runtime" or "compile" (cf. > ScopeArtifactFilter) and that excludes "provided" and "system" scope. > > So, how is a plugin supposed to get a classpath consisting of dependencies > with any of the scopes "compile", "provided", "system" and "runtime", i.e. > all but "test" scope? > > > Benjamin > > --------------------------------------------------------------------- > 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]
