Estoy intentando invocar maven-dependency-plugin programáticamente. Estoy usando la versión de maven 3. el problema es que cuando invoco a través pluginManager.executeMojo (sesión, ejecución), aparece el siguiente mensaje de error:Cómo invocar programáticamente un complemento de dependencia maven
[ERROR] **The parameters 'project', 'local', 'remoteRepos',
'reactorProjects' for goal
org.apache.maven.plugins:maven-dependency-plugin:2.1:unpack are
missing or invalid**
**org.apache.maven.plugin.PluginParameterException: The parameters 'project',
'local', 'remoteRepos', 'reactorProjects' for goal
org.apache.maven.plugins:maven-dependency-plugin:2.1:unpack are missing or
invalid**
at org.apache.maven.plugin.internal.DefaultMavenPluginManager
.populatePluginFields(DefaultMavenPluginManager.java:518)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager
.getConfiguredMojo(DefaultMavenPluginManager.java:471)
at org.apache.maven.plugin.DefaultBuildPluginManager
.executeMojo(DefaultBuildPluginManager.java:99)
at com.sap.ldi.qi.osgi.OSGiManifesrMfHandlerMojo
.invokeMavenDependencyPlugin(OSGiManifesrMfHandlerMojo.java:139)
at com.sap.ldi.qi.osgi.OSGiManifesrMfHandlerMojo
.execute(OSGiManifesrMfHandlerMojo.java:100)
at org.apache.maven.plugin.DefaultBuildPluginManager
.executeMojo(DefaultBuildPluginManager.java:110)
at org.apache.maven.lifecycle.internal.MojoExecutor
.execute(MojoExecutor.java:144)
at org.apache.maven.lifecycle.internal.MojoExecutor
.execute(MojoExecutor.java:87)
at org.apache.maven.lifecycle.internal.MojoExecutor
.execute(MojoExecutor.java:79)
-- many lines stripped from stack trace --
[INFO] ----------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ----------------------------------------------------------------------
[INFO] Total time: 17.938s
[INFO] Finished at: Mon Nov 22 10:27:42 EET 2010
[INFO] Final Memory: 12M/23M
[INFO] ----------------------------------------------------------------------
[ERROR] Failed to execute goal
com.sap.ldi.qi:osgi-manifest-handler-plugin:0.0.1-SNAPSHOT:handle
(osgi-manifest-handler plugin) on project com.sap.ldi.demo.calc
.cmd.tests: The parameters 'project', 'local', 'remoteRepos',
'reactorProjects' for goal
org.apache.maven.plugins:maven-dependency-plugin:2.1:unpack are missing
or invalid -> [Help 1]
-- stripped rest --
que yo sepa, el único parámetro necesario para el objetivo de desempaquetado de Maven plugin de dependencia es artifactItems . Establecí la configuración del complemento mediante el método PluginExecution.setConfiguration(). Parece que esta configuración de complemento no está configurada correctamente. ¿Tiene alguna idea de por qué se lanza esta excepción?
Aquí es la configuración que estoy usando:
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.sap.ldi.demo.calc</groupId>
<artifactId>com.sap.ldi.demo.calc.cmd</artifactId>
<version>0.1.2-SNAPSHOT</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>target/demo-calc-stuff</outputDirectory>
<includes>**/*.*</includes>
</artifactItem>
</artifactItems>
</configuration>
Gracias
Una corrección de mi lado. La versión usada de Maven no es Maven 3.0 sino Maven 3.0-beta-1. Veo que BuildPluginManager.loadPlugin()
en la versión 3.0-beta-1 tiene dos argumentos, y el mismo método en la versión 3.0 tiene tres. Me pregunto si alguien intentó invocar un plugin maven programáticamente con maven 3.0 o maven 3.0-beta-1. Todavía estoy tratando de invocarlo con maven 3.0-beta-1, pero todavía devuelve la misma excepción que se pegó anteriormente.
Pensé que BuildPluginManager.executeMojo() está destinado a tales casos de uso. También encontré el siguiente enlace, que explica cómo invocar los plugins de maven programáticamente: http://code.google.com/p/mojo-executor/ – moisko
Parece que la implementación utilizada es para maven 2, pero Don Brown está utilizando la misma idea que se explicó anteriormente – moisko
http://stackoverflow.com/questions/526733/maven-plugin-executing- otro complemento: ese es el enlace al que me refiero. – moisko