grunt-maven-pluginを使って、Mavenのビルド工程でGruntビルドを実行する。

数ヶ月前から開発環境にGruntを導入しました。

JavaScriptやCSSの開発工程を自動化するGruntとは何か?

さすがに便利で、一気に運用中の全プロジェクトに展開されました。

Mavenのビルド工程でGruntビルドをする

Gruntのビルドは、コマンドラインでgruntコマンドを実行するだけです。

grunt

grunt-contrib-watchを併せて使うと、ファイルの変更時にビルドをかけてくれます。

grunt-contrib-watchで、JavaScriptやCSSの更新時に自動でビルドする。

開発中はこれで良いんですが、変更内容をコミットしてJenkinsにビルドさせる場合、Mavenのビルド工程にGruntのビルド処理が組み込まれていると、さらにスムーズです。

grunt-maven-pluginを使う

そこで、grunt-maven-pluginを使って、Mavenのビルド工程にGruntのビルドを組み込みます。

スクリーンショット 2014-07-06 22.41.27

allegro/grunt-maven-plugin

設定は、こんな感じです。

<plugin>
	<groupId>pl.allegro</groupId>
	<artifactId>grunt-maven-plugin</artifactId>
	<version>1.3.0</version>
	<executions>
		<execution>
			<phase>process-resources</phase>
			<goals>
				<goal>npm</goal>
				<goal>grunt</goal>
			</goals>
		</execution>
	</executions>
	<configuration>
		<gruntBuildDirectory>${project.build.directory}/grunt</gruntBuildDirectory>
	</configuration>
</plugin>

これで、アプリケーションのビルド工程でGruntが実行されます。

フロントエンドのビルドは全てGruntへ

今までは、LESSやTypeScriptなどのフロントエンドのコードのビルドもMavenで行っていました。しかしながら、フロントエンドのコードのビルドにMavenを使うのは、親和性も低いですし、とにかく処理が重いという問題がありました。

最終的に、フロントエンドのコードのビルドは全てGruntにまかせて、Mavenは単にgrunt-maven-plugin経由でGruntを呼び出すのみにしました。

これで、フロントエンドのエンジニアは、Mavenを起動せずに、Gruntのみで開発ができるようになりました。またJenkinsなどを通してアプリケーション全体をビルドする場合も、Maven経由でGruntを呼び出すので、同一のビルド設定を流用でき、安全かつ簡単になりました。

About katty0324

Comments are closed.

Scroll To Top