我的目录下有100个文件。我只是想打印它。请在下面找到我写过的插件。我收到了以下错误:
[错误] PluginConfigurationException: org.apache.maven.plugin.PluginConfigurationException:无法解析mojo的配置org.apache.maven.plugins:maven-antrun-plugin:1.7:run for parameter outputDirectory:在类org.apache.maven中找不到'outputDirectory'。 plugin.antrun.AntRunMojo 在org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:605) 在org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537) 在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120) 在com.soebes.maven.plugins.iterator.ExecutorMojo.executeMojo(ExecutorMojo.java:302)
代码如下:
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>iterator-maven-plugin</artifactId>
<version>0.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>iterator</goal>
</goals>
<configuration>
<folder>${user.home}/${dasmo.storage}</folder>
<pluginExecutors>
<pluginExecutor>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
</plugin>
<goal>run</goal>
<configuration>
<tasks>
<echo message="base dir is ${item}" />
</tasks>
</configuration>
</pluginExecutor>
</pluginExecutors>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:2)
Maven使用DefaultMavenPluginManager.populatePluginFields()
将POM中的值复制到插件的字段中。在您的情况下,经理已决定插件org.apache.maven.plugins:maven-antrun-plugin:1.7:run
(由org.apache.maven.plugin.antrun.AntRunMojo
实施)必须知道outputDirectory
的值并尝试设置它。
我没有看到DefaultMavenPluginManager
认为mojo(插件)需要此属性的原因,因为它未在POM中提及。我的下一步是启动我的调试器并逐步执行代码,以查看DefaultMavenPluginManager
获取要在mojo中配置的属性列表的位置。也许你可以影响它,或者在其他地方有一个配置错误(比如在父POM中)。
[编辑] 如果您想一次解压缩多个文件,Maven可能是错误的工具。试试Ant
可以配置为仅build.xml
中的几行执行任务。请参阅此问题以获得解决方案:How do you use ant to unjar multiple JAR files and rebuild them into one JAR file?
或者,您可以在Windows上使用PowerShell在脚本中完成工作或在Linux上使用此脚本:
for f in *.zip ; do
unzip "$f"
done