2014年11月24日月曜日

grunt-maven-pluginを使用したプロジェクトでtarget中の不要ファイルを削除する

前回のままだとGruntfile.jsやpackage.jsonなどがtargetに含まれてしまいます。。。 なのでこれを削除したいと思います。


target/classes
├── static
│   ├── Gruntfile.js
│   ├── js
│   │   ├── app.min.js
│   │   └── src
│   │       ├── Doramon.js
│   │       ├── main.js
│   │       └── namespace.js
│   ├── maven-properties.json
│   └── package.json
  


Mavenの情報を取得してtargetのパスを取得します。


今回はこれのoutputDirectoryを使います。
{
  "directory": "${project.build.directory}",
  "outputDirectory": "${project.build.outputDirectory}",
  "name": "${project.name}",
  "version": "${project.version}",
  "finalName": "${project.build.finalName}"
}
  
GitHub: src/main/resources/static/maven-properties.json


Gruntからtargetのパス情報を取得して不要ファイルの削除を行います。


ついでに"clean:before"という作業前に前回のJavaScriptを削除する処理を追加
module.exports = function (grunt) {
    grunt.initConfig({
        ・・・省略・・・
        mvnProp: grunt.file.readJSON('maven-properties.json'),
        ・・・省略・・・
        clean: {
            before: {
                options: {  force: true  },
                files: { src: [ "js/**/*.js" ] }
            },
            after: {
                options: {  force: true  },
                files: {
                    src: [
                        "<%= mvnProp.outputDirectory %>/static/Gruntfile.js",
                        "<%= mvnProp.outputDirectory %>/static/package.json",
                        "<%= mvnProp.outputDirectory %>/static/maven-properties.json",
                        "<%= mvnProp.outputDirectory %>/static/js/**/*.js"
                    ]
                }
            }
        },
        ・・・省略・・・
    grunt.registerTask('beforeClean', ['clean:before']);
    grunt.registerTask('default', ['mavenPrepare', 'concat', 'clean:after', 'mavenDist']);
};
  
GitHub: src/main/resources/static/Gruntfile.js

※ ※ 修正しました〜。goalsのgoalに create-resources がないとnpm installできませんでした。 ※

Gruntの"clean:before"をMavenのinitializeフェーズで動かす


<execution>
    <id>gruntInit</id>
    <phase>initialize</phase>
    <configuration>
        <gruntOptions>
            <gruntOption>beforeClean</gruntOption>
        </gruntOptions>
    </configuration>
    <goals>
        <goal>create-resources</goal>
        <goal>npm</goal>
        <goal>grunt</goal>
    </goals>
</execution>
  
GitHub: pom.xml


これで不要なファイルが消えました。


  target/classes
├── static
│   └── js
│       ├── app.min.js
│       └── src

サンプルを GitHub にあげています。 参考になれば幸いです〜。

0 件のコメント:

コメントを投稿