我想以編程方式調用maven-dependency-plugin。我正在使用maven 3版本。問題是,當我通過pluginManager.executeMojo(會話,執行)調用它,我收到以下錯誤信息:如何以編程方式調用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 --
據我所知,Maven的依賴插件的解壓目標的唯一需要的參數是artifactItems 。我使用PluginExecution.setConfiguration()方法設置插件配置。看來這個插件配置沒有正確設置。 你知道爲什麼拋出這個異常嗎?
這裏是我使用的配置:
<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>
感謝
從我身邊一個修正。使用的Maven版本不是Maven 3.0,而是Maven 3.0-beta-1。我發現版本3.0-beta-1中的BuildPluginManager.loadPlugin()
有兩個參數,3.0版本中的相同方法有三個參數。 我想知道,沒有人試圖用maven 3.0或maven 3.0-beta-1以編程方式調用maven插件。我仍然試圖用maven 3.0-beta-1調用它,但它仍然返回與上面粘貼的相同的異常。
我認爲BuildPluginManager.executeMojo()適用於這種用例。我還找到了以下鏈接,解釋瞭如何以編程方式調用Maven插件:http://code.google。com/p/mojo-executor/ – moisko 2010-11-22 09:43:08
看來,使用的實現是爲maven 2,但唐布朗使用相同的想法,如上所述 – moisko 2010-11-22 09:44:54
http://stackoverflow.com/questions/526733/maven-plugin-executing-另一個插件 - 這是我正在討論的帖子的鏈接。 – moisko 2010-11-22 09:50:55