ビルドで grunt と bowerを使用するためにfrontend-maven-pluginを使用します。Frontend Maven Plugin を使用すると、NPM をローカルにインストールし、Bower を使用して Java ライブラリをダウンロードし、Grunt を実行してコードを最適化および難読化できます。
単純化して次のようにします。
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>0.0.24</version>
<executions>
<execution>
<id>install node and npm</id>
<goals> <goal>install-node-and-npm</goal> </goals>
...
</execution>
<execution>
<id>npm-install</id>
<goals> <goal>npm</goal> </goals>
...
</execution>
<execution>
<id>bower-install</id>
<goals> <goal>bower</goal> </goals>
...
</execution>
<execution>
<id>grunt-build</id>
<goals> <goal>grunt</goal> </goals>
...
</execution>
</executions>
</plugin>
最後の実行は grunt-build であることに注意してください。これは、JavaScript ファイルが連結され、最適化 (リターン、コメント、およびその他のものは削除されます) され、難読化される場所です。
これはリリースに適しています。ただし、開発者は、JavaScript ファイルを連結、最適化、および難読化することなく、戦争を展開したいと考えています。これはデバッグに役立ちます。grunt-build
そのためには、このプラグインの構成から実行セクションを削除するだけです。
これを行うためにプロファイルを使用したいと思います。development
開発者が最後のセクションなしでビルドできるようにするプロファイルを呼び出すことができます。ファイルのこのセクションをコピーして貼り付けpom.xml
、最後の実行を削除して、別のプロファイルに入れるだけです。すべて完了。
ただし、古いプログラミングの格言である「繰り返さないでください」があります。で約 50 行のコードを複製することになりますpom.xml
。
私がやりたいのは、最初の 3 つの実行を実行し、これが開発ビルドでない場合にのみ 4 番目を実行する方法を用意することです。これには、他にもいくつかのニップとタックがあります。たとえば、不平を言う結果ではなく、JavaScript 自体をコピーする必要があります。しかし、これは簡単に実行でき、コードを複製することもありません。
これにより、2 つの構成で を定義する必要があるため、コードが重複frontend-maven-plugin
します。プロファイル用development
に 1 回、標準リリース ビルド用に 1 回。私の知る限り、 のこの構成を実行するとは言えません。frontend-maven-plugin
これが開発ビルドでない場合は、 のこのインスタンスを実行するfrontend-maven-plugin
と、単調なことしかできません。
で同じプラグインを 2 回定義し、pom.xm
Maven で両方のインスタンスを正しい順序で実行する方法はありますか?