26

JavaScriptコードを使用したMavenプロジェクトがあります。pom.xmlのコンパイルゴールに接続された特別なjavascriptコンパイラプラグインがあります。したがって、「mvn compile」と入力すると、src / main / javascript内のJavaScriptソースがコンパイル(圧縮および難読化)され、target/classesディレクトリに保存されます。コマンドラインでは、これはうまく機能します。

しかし今、私はEclipseをm2eclipseプラグインと一緒に使用することで開発を容易にしたいと思っています。JavaScriptファイルを変更するたびにEclipseがコンパイルゴールを呼び出すようにしたい。これどうやってするの?JavaScriptファイルを保存すると、Mavenコンソールに「AUTO_BUILD」ログ行が表示されます。それだけです。

プロジェクト設定では、ライフサイクルマッピングを構成できます。しかし、何らかの理由で、「クリーン後」と「リソース変更時」にのみカスタム目標を追加できます。「コンパイル」目標を「リソース変更」ライフサイクルマッピングに追加すると、リソースを変更したときにJavaScriptファイルがコンパイルされます。そのため、代わりにJavaScriptファイルをresourcesフォルダーに入れることができ、それは機能しますが、これはかなり醜いように聞こえます。

プロジェクトを「クリーン」にするようにEclipseに指示したときにも機能します。次に、コンパイル目標ターゲットが呼び出されます。つまり、JavaScriptファイルを保存するときに、機能をすべて実行してもらいたいのです。これはどういうわけか可能であるに違いありませんか?

ヒントはありますか?

4

2 に答える 2

10

プロジェクト設定では、ライフサイクルマッピングを構成できます。しかし、何らかの理由で、「クリーン後」と「リソース変更時」にのみカスタム目標を追加できます。「コンパイル」目標を「リソース変更」ライフサイクルマッピングに追加すると、リソースを変更したときにJavaScriptファイルがコンパイルされます。そのため、代わりにJavaScriptファイルをresourcesフォルダーに入れることができ、それは機能しますが、これはかなり醜いように聞こえます。

お気づきのとおり、Eclipseのインクリメンタルビルドで実行されるデフォルトの目標はとprocess-resourcesですresources:testResources。個人的には、jsファイルをリソースの下に置くのは醜いことではなく、javascriptプラグインをにバインドするだけprocess-resourcesです。

プロジェクトを「クリーン」にするようにEclipseに指示したときにも機能します。次に、コンパイル目標ターゲットが呼び出されます。

フルビルド(Eclipseからのクリーンアップ後)では、実行される目標process-test-resourcesは、実際にはフェーズを含むビルドライフサイクルフェーズですcompile。そのためcompile、Eclipseからプロジェクトをクリーンアップするときに呼び出されます。しかし、これはあなたの問題を解決しません(保存時にプラグインを実行します)。


私が言ったように、私はただjsファイルをリソースの下に置くでしょう。しかし、おそらく別のオプションがあります。プロジェクトに別のビルダーを追加することです。プロジェクトを右クリックし、[プロパティ]>[ビルダー]>[新規]>[Mavenビルド]を選択し、プラグインの目標を自動ビルドの目標中に実行する目標として定義します(ニーズに合わせて他の目標を変更または削除します)。

代替テキストhttp://img694.imageshack.us/img694/2382/screenshot003wo.png

しかし、私は他のアプローチを好みます。

于 2010-04-13T20:56:36.083 に答える
2

@ pastal-thiventの回答は(コメントに記載されているように)古く、@ akostadinovによって示唆されているためhttps://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

有効なMavenライフサイクルアクションを追加する必要があります

Mavenインストールプラグインによってローカルに自動的にデプロイされる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>

ヒント:Mavenプロジェクトビルダーに関連して、ソースファイル(GWT)を変更するたびに呼び出され、警告として:通常のMavenビルドサイクルにテストが含まれている場合、インストールには通常テストが含まれます

于 2015-11-04T13:13:58.093 に答える