前回のままだと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
にあげています。
参考になれば幸いです〜。