コンテンツへスキップ

SpringBoot+Gradleでgrunt/bowerをする

やること

  • gradle buildした時にgrunt/bowerしてくれたら素敵じゃないかと。
  • SpringBoot+Gradleでサーバサイドを構築
  • クライアントサイドはstaticに配置
  • gruntやbowerをgradle build時に実行させる
  • git clone -> gradle buildでjar作成まで自動化

Gradleの設定

  • Gradleからnodeやgruntを使いたいのでpluginを入れる
  • nodeとgruntに作業ディレクトリ等の設定をする
  • classesゴールの前にgrunt buildやnpm installを実行させる
  • node_modules、bower_componentsフォルダはひとまずプロジェクトルートに置く
buildscript {
  repositories {
    mavenCentral()
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    //略

    // for grunt/bower
    classpath "com.moowork.gradle:gradle-node-plugin:0.11"
    classpath "com.moowork.gradle:gradle-grunt-plugin:0.11"
  }
}

//略

apply plugin: "com.moowork.node"
apply plugin: "com.moowork.grunt"

//略

node {
  version = '0.12.7'
  download = true
  workDir = file("${project.buildDir}/nodejs")
  nodeModulesDir = file("${project.projectDir}")
}

grunt {
  // Set the directory where Gruntfile.js should be found
  workDir = file("${project.projectDir}")
}

// npm install -> installGrunt -> grunt buildをclassesの前に割り込み

classes.dependsOn grunt_build
grunt_build.dependsOn npm_install
grunt_build.dependsOn 'installGrunt'

npm installしたら自動的にbower installさせる

  • 上記設定だとbower installが入っていない
  • bower installをgradleで実行するプラグインもあるようだが未検証
  • bower installはnpm installと一緒に実行されるようにpackage.jsonに記載する
//略

"scripts": {
"postinstall": "bower install"
},

//略

grunt/bowerに必要な情報を配置

  • projectルート直下に以下を配置
  • package.json
  • bower.json
  • Gruntfile.js

実行

  • gradle buildするとnpm installやbower install、grunt buildが実行される

まとめ

  • わりと簡単にgradleからgrunt/bowerすることができた
  • あとはjenkinsおじさんを使えば自動デプロイまでもっていけそう

コメントを残す

メールアドレスが公開されることはありません。