Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gradleで始めるGroovy expand #jjug_ccc #ccc_r14

grimrose
November 15, 2014

Gradleで始めるGroovy expand #jjug_ccc #ccc_r14

grimrose

November 15, 2014
Tweet

More Decks by grimrose

Other Decks in Programming

Transcript

  1. Gradle 2.2 • Component Selection Rules • Declaring module replacements

    • Sonar Runner plugin improvements • Native language cross-compilation improvements • Support for building x64 binaries on Windows using GCC • Specify version control system for IntelliJ IDEA • Specify location of local maven repository independently • Compatibility with OpenShift • Support for renaming imported Ant targets • Sharing configuration files across builds • Plugin to package and publish plugins
  2. 話すこと • 導入編 ◦ Gradleの世界 ◦ スタートアップ Gradle • 基礎編

    ◦ Gradleの基礎 ◦ スクリプトファイルの記述 • Appendix ◦ E. Groovy リファレンス
  3. build.gradle buildscript { repositories { jcenter() } dependencies { classpath

    'com.tkruse.gradle:gradle-groovysh-plugin:1.0.1' } } apply plugin: 'com.github.tkruse.groovysh' apply plugin: 'java'
  4. 注意点 • プロジェクトをロックしてしまう。 ◦ 使用中は、IntelliJ IDEA等でGradleプロ ジェクトの更新が出来ない。 • -q オプションを使う

    ◦ Gradleのログが出力されて使いづらい • --no-daemon オプションを使う ◦ Gradleをdaemonで動かしてる人は注意。
  5. Stream API と GDK • filter • forEach • map

    • reduce • flatMap • findAll • each • collect • inject • flatten ◦ (+ collect)
  6. Stream API と GDK • allMatch • anyMatch • collect

    • distinct • count • max • min • sorted • every • any • collect • unique • size • max • min • sort
  7. Power Assert groovy:000> a = 1 ===> 1 groovy:000> b

    = 2 ===> 2 groovy:000> assert a == b ERROR org.codehaus.groovy.runtime.powerassert. PowerAssertionError: assert a == b | | | 1 | 2 false groovy:000>
  8. 演算子オーバーロード configurations { excludeFromProd } dependencies { runtime 'com.googlecode.log4jdbc:log4jdbc:1.2' runtime

    'org.postgresql:postgresql:9.3-1102-jdbc41' excludeFromProd 'com.googlecode.log4jdbc:log4jdbc:1.2' } war { if (env == 'prod') { classpath -= configurations.excludeFromProd } }