Mavenでは、フォルダ/ディレクトリを繰り返す方法? -- maven フィールド 関連 問題

In Maven, how to iterate folder/directory?












1
vote

問題

日本語

私はその下に100ファイルのディレクトリを持っています。印刷したいだけです。私が書いたプラグインの下を見つけてください。私は次のエラーが発生しています:

[エラー] PluginConfigurationException: org.apache.maven.plugin.pluginconfigurationException:Mojo org.apache.maven.pluginsの設定解析:maven-antrun-plugin:1.7:パラメータOutputDirectoryの実行:class 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(exectionormojo.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>
英語

I have directory with 100 files under it. I just want to print it. Please find below the plugin I have written. I am getting following error:

[ERROR] PluginConfigurationException: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-antrun-plugin:1.7:run for parameter outputDirectory: Cannot find 'outputDirectory' in class org.apache.maven.plugin.antrun.AntRunMojo at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:605) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120) at com.soebes.maven.plugins.iterator.ExecutorMojo.executeMojo(ExecutorMojo.java:302)

The code is as below:

<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> 
</div
  
         
         

回答リスト

2
 
vote
vote
ベストアンサー
 

Mavenは、 DefaultMavenPluginManager.populatePluginFields() を使用してPOMからの値をプラグインのフィールドにコピーします。あなたの場合、マネージャはプラグイン<コード> 'HandleVisibility'0 ( 'HandleVisibility'1 )がの値を知っている必要があると決定し、それを設定しようとしました。

'HandleVisibility'3 は、POMに記載されていないためMojo(Plugin)がこの財産を必要とすると考える理由はありません。私の次のステップは、コードを実行してコードを実行して、 'HandleVisibility'4 がmojoで設定するプロパティのリストを取得する場所を確認することです。多分あなたはこれに影響を与えることができますか、それとも他の場所に設定エラーがあるかもしれません(親POMのように)。

[編集] 一度に多くのファイルを解凍したい場合は、おそらく間違ったツールです。 'on'666161616 の数行だけでタスクを実行するように設定できる 99887776615 。解決策についてこの質問を参照してください。複数のJARファイルをUNJARに使用し、それらを1つのJARファイルに再構築しますか?

あるいは、WindowsでPowerShellを使用してスクリプト内のジョブを実行するか、このスクリプトをLinuxで使用することもできます。

<事前> <コード> 'HandleVisibility'7
 

Maven uses DefaultMavenPluginManager.populatePluginFields() to copy values from the POM into fields of the plugin. In your case, the manager has decided that the plugin org.apache.maven.plugins:maven-antrun-plugin:1.7:run (implemented by org.apache.maven.plugin.antrun.AntRunMojo) must know the value of outputDirectory and tries to set it.

I don't see a reason why DefaultMavenPluginManager thinks that the mojo (plugin) would need this property since it's not mentioned in the POM. My next step would be to start my debugger and step through the code to see where DefaultMavenPluginManager gets the list of properties to configure in a mojo. Maybe you can influence this or there is a configuration error elsewhere (like in the parent POM).

[EDIT] If you want to unzip many files at once, Maven is probably the wrong tool. Try Ant which can be configured to do the task with just a few lines in build.xml. See this question for a solution: How do you use ant to unjar multiple JAR files and rebuild them into one JAR file?

Alternatively, you can use PowerShell on Windows to do the job in a script or use this script on Linux:

for f in *.zip ; do     unzip "$f" done 
</div
 
 
       
       

関連する質問

0  javax.naming.namenotFoundException:myBean#mybeanが見つかりません  ( Javax naming namenotfoundexception mybeanmybean not found ) 
私は、JARモジュール(モデル)、2つのEJBモジュール(リポジトリ、サービス)、およびWebモジュールを含むマルチモジュールMavenプロジェクトを持っています。 問題を引き起こす可能性がある最初のものは、Persistence.xmlファイルをどのEJBモ...

3  KotlinプログラムからJavaライブラリを使用する方法  ( How to use java library from kotlin program ) 
コトリンでプログラミングしています。 私は java で書かれたライブラリを使用する必要があり、Maven Centralから来ています。 私は私の pom.xml に依存関係を置き、私の kotlin コードでライブラリをインポートすることができます。 しか...

2  間違ったリポジトリからダウンロードするMaven [Closed]  ( Maven downloading from wrong repository ) 
閉じたこの質問はオフトピックです。現在答えを受け付けていません。 この質問を改善したいですか?質問を更新するので、スタックオーバ...

1  JPad​​atabaseが働いていないJooq Codegen  ( Jooq codegen with jpadatabase not working ) 
JPADATABASEを使用してJooq Codegenを使用する問題があります。私はこの POST と変更を加えたによると。マイプロジェクトにはサブモジュールが含まれ、エンティティクラスはドメインモジュールにあります。私はドメインによって異なりますBizモ...

-1  親プロジェクトのためのMavenと春の起動  ( Spring boot with maven for parent project ) 
私は「CSMaster」の名前が「CSMaster」であるSpring Boot Mavenプロジェクトを持っています、私の別のプロジェクト(AppAdmin)で使用する共通コードが含まれています。 csmasterプロジェクトに含まれています - ド...

0  Spring Sts Mavenパブリックリポジトリからjarsをダウンロードしないようにする方法  ( Spring sts maven how to avoid downloading jars from public repositories ) 
開発のためのSpring STS(STS-SPRINGSOURCETOOLSUITE)を使用しています。私の会社では、インターネット/パブリックリポジトリからJARをダウンロードすることはできません。私のpom.xmlでは、 http://repo1.mave...

1  Alfresco Solrトラッキングに失敗しました  ( Alfresco solr tracking failed ) 
だから私のプロジェクトの年代学的に: 私は mvn archetype:generate -Dfilter=org.alfresco: (Alfresco Platform Jar Archetype)を備えたAlfresco Mavenリポジトリを生成してか...

3  Selenium UIテスト中にモックサービスを交換する方法  ( How to swap in mock services during selenium ui testing ) 
私たちのMavenビルドプロセスにセレンテストを紹介したいと思います。幸せな、これを行う方法について利用可能な情報のトンがありますが、私たちの要求の1つを取り扱う方法を考え出すのに苦労しています。 テストレイヤーを分離するために、UIテストにMock Serv...

2  java.lang.ClasscastException:org.apache.jasper.Runtime.ELContextImplはorg.apache.jasper.el.el.elContextImplにキャストできません  ( Java lang classcastexception org apache jasper runtime elcontextimpl cannot be ) 
LocalhostとOpenShift RHCサーバーで完全に問題ないJSPアプリケーションがありますが、実動サーバーにアップロードするとエラーが発生します - <事前> <コード> HTTP Status 500 - An exception occu...

7  Mavenを使ってSelenium 3.4.0を使用してFirefoxdriverを起動する方法  ( How to start firefoxdriver using selenium 3 4 0 using maven ) 
MavenプロジェクトでSeleniumの最新バージョン3.4.0を使用しようとしています。以下の依存関係を使用してすべてのセレンのジャーを輸入しました: - <事前> <コード> <dependency> <groupId>org.seleni...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有