Jenkins-IDE連携はIntelliJが一番ショボい

そんなわけで個人的にはIDE連携には興味ないんですけどね。:-P
Jenkins Advent Calendar jp 2011の7日目です。id:kiy0taka さんが暖めたネタを華麗にスルーして淡々と進めますね。


と要らんことをいちいち書いてしまうのは自分の悪い癖だなと最近気づいたわけですが、他のIDEの場合、以下のように標準でサポートしてます。

  • NetBeans ... 標準サポート
  • Eclipse ... MylynのHudson/Jenkinsコネクタでサポート

IntelliJの場合は、Jenkins Control PluginHudson Build Monitorあたりですが、どちらもイマイチです。

続きを読む

Handy Gradle startup script

http://glaforge.appspot.com/article/handy-gradle-startup-script


G* Advent Calendar 2011の7日目です。まさかJenkinsと同じ日になっていたとは、そこまで考えが回らなかった。IntelliJのGradleサポートの話でも書こうかと思ったけど、挙動がイマイチだったのでやめた。リアルタイムだとついさっき、IDEA11が正式リリースしたんですけどね、さすがにホット過ぎて何も書けません。><


代わりにこんなエントリ見つけたので紹介してお茶を濁す。:-)


要するに「Gradleの初期ディレクトリを作るタスクを考えた」って話で、確かにその発想はなかった。

apply plugin : 'groovy'
apply plugin : 'idea'

repositories { mavenCentral() }

dependencies {
  groovy 'org.codehaus.groovy:groovy-all:1.8.4'
}

task makeDirs(description : 'make all dirs for project setup') << {
  def sources = [sourceSets.main, sourceSets.test]
  sources*.allSource*.srcDirs.flatten().each { File srcDir ->
    println "making $srcDir"
    srcDir.mkdirs()
  } 
}

task wrap(type : Wrapper, description : "create a gradlew") {
    gradleVersion = '1.0-milestone-6'	
}


余計な事も書いてあるけどキモはmakeDirsタスク。apply pluginに'java'やら'scala'やら追加すると、勝手にそれっぽいディレクトリを作ってくれる。とっても便利。でも

apply plugin: 'war'

の場合、こんなコードにしないとダメだった。これはまあ仕方ないか。

task makeDirs(description : 'make all dirs for project setup') << {
  def sources = [sourceSets.main, sourceSets.test ]
  sources*.allSource*.srcDirs.flatten().each { File srcDir ->
    println "making $srcDir"
    srcDir.mkdirs()
  }
  ["${webAppDirName}/WEB-INF"].each {
    println "making $it"
    new File(it).mkdir()
  }
}

WEB-INF付けるかどうかは好みの問題。${webAppDirName}を2回書くのイヤでああしたけど、もっとエレガントな書き方あったかも。