JavaScriptコードを含むMavenプロジェクトがあります。 pom.xmlのコンパイル目標に接続された特別なjavascriptコンパイラプラグインがあります。 「mvn compile」と入力すると、src/main/javascriptのJavaScriptソースがコンパイル(圧縮および難読化)され、target/classesディレクトリに保存されます。コマンドラインでは、これはうまく機能します。
しかし今、m2EclipseプラグインでEclipseを使用することで開発を簡単にしたいと思っています。 JavaScriptファイルを変更するたびに、Eclipseがコンパイル目標を呼び出すようにします。これどうやってするの? JavaScriptファイルを保存すると、mavenコンソールに「AUTO_BUILD」というログ行が表示されるだけです。
プロジェクトの設定で、ライフサイクルマッピングを設定できます。しかし、何らかの理由で、「クリーン後」と「リソース変更時」にのみカスタム目標を追加できます。 「リソース変更」ライフサイクルマッピングに「コンパイル」目標を追加すると、リソースを変更するとJavaScriptファイルがコンパイルされます。そのため、代わりにJavaScriptファイルをリソースフォルダーに入れることができますが、それは機能しますが、これは非常に見苦しいです。
また、Eclipseにプロジェクトを「クリーン」にするように指示したときにも機能します。次に、コンパイル目標ターゲットが呼び出されます。そのため、JavaScriptファイルを保存するときに機能を実行したいだけです。これはどういうわけか可能でなければならないのでしょうか?
ヒントはありますか?
プロジェクトの設定で、ライフサイクルマッピングを設定できます。しかし、何らかの理由で、「クリーン後」と「リソース変更時」にのみカスタム目標を追加できます。 「リソース変更」ライフサイクルマッピングに「コンパイル」目標を追加すると、リソースを変更するとJavaScriptファイルがコンパイルされます。そのため、代わりにJavaScriptファイルをリソースフォルダーに入れることができますが、それは機能しますが、これは非常に見苦しいです。
お気づきのとおり、Eclipseの増分ビルドで実行されるデフォルトの目標はprocess-resources
とresources:testResources
です。個人的には、jsファイルをリソースの下に置くのは見苦しく、javascriptプラグインをprocess-resources
にバインドするだけです。
また、Eclipseにプロジェクトを「クリーン」にするように指示したときにも機能します。次に、コンパイル目標ターゲットが呼び出されます。
完全なビルド(Eclipseからのクリーン後)では、実行される目標はprocess-test-resources
です。これは実際にはcompile
フェーズを含むビルドライフサイクルフェーズです。そのため、クリーニング時にcompile
が呼び出されますEclipseからプロジェクトを作成します。しかし、これは問題を解決しません(保存時にプラグインを実行します)。
前にも言ったように、jsファイルはリソースの下に置くだけです。ただし、別のオプションがあります。プロジェクトに別のBuilderを追加することです。 プロジェクトを右クリックしてから、プロパティ>ビルダー>新規> Mavenビルドプラグインの目標をAuto Build Goals中に実行する目標として定義します(ニーズに合わせて他の目標を変更または削除します):
alt text http://img694.imageshack.us/img694/2382/screenshot003wo.png
しかし、私は他のアプローチを好みます。
@ Pascal-thiventの回答は時代遅れで(コメントで述べられているように)、@ akostadinovによって示唆されているため https://www.Eclipse.org/m2e/documentation/m2e-execution-not-covered.html :
有効なMavenライフサイクルアクションを追加する必要があります
maven install pluginによってローカルに自動的にデプロイされるjarの例:
<build>
<!-- ... -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>jar</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<versionRange>[2.5.0,)</versionRange>
<goals>
<goal>install</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
ヒント: ソースファイル(GWT)を変更するたびにMaven Project Builderが呼び出されます および警告として:通常のインストールには、通常のMavenビルドサイクルに含めた場合のテストが含まれます