在Maven中,如何迭代文件夹/目录?

时间:2015-02-24 08:54:28

标签: maven

我的目录下有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>

1 个答案:

答案 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