Your SlideShare is downloading. ×
0
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
明日から使えるgradle
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

明日から使えるgradle

9,547

Published on

Published in: Technology, Education
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,547
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
32
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 明日から使えるGradle 2011/07/22 @kimukou_26
  • 2. はじめにお断り書き下記環境上で試行錯誤した設定を記述してておりますMBA等で開発されている方にとっては、冗長で不必要な設定もあると思われますその点に関してましては御容赦頂けると幸いです環境 WinXPSP3 32bit、Win7 32bit JDK6u26 gradle1.0-milestone-3
  • 3. 今日はGradle凄いぞ! な話は話しませんw基本の紹介スライドの紹介 @literalice さん 「GradleによるG*なビルドシステムの構築」 http://www.slideshare.net/literalice/gradle- introduction サンプル http://bit.ly/gNu4Ad @nobeans さん “How about Gradle?" http://d.hatena.ne.jp/nobeans/20110225/12985 98901
  • 4. ユーザドキュメントの和訳サイト@literalice さん http://www.monochromeroad.com/artifacts/ gradle/userguide/userguide.html GitHubで翻訳活動されています https://github.com/literalice/gradle-ja/wiki
  • 5. まずGroovyを知っている方~知らない方はGroovy1.8本がつい最近出ましたの是非読んでください~ この本を読んでから「Groovy In Action」 を読み直すと理解度増すこと請け合いw
  • 6. 表紙はこんな本です
  • 7. ではなく@torazuka さん
  • 8. こちらです。絶賛発売中です
  • 9. ここで表紙特集組まれてます~@orange_clover さんお前の「プログラミングGROOVY」は何色だ? http://d.hatena.ne.jp/orangeclover/20110706/ 1309954580
  • 10. @mike_neckさん @40balmungさん
  • 11. 発売記念Ghello企画@orange_clover さんまとめ広がるGroovyプログラマの輪 #ghellofinalize()!! コードと実行結果の一部を紹介 http://d.hatena.ne.jp/orangeclover/20110714/ 1310649352
  • 12. その他のGroovy特集 Groovyistのみなさま申し訳ございません。3Dは目に有 害だそうです。お詫びにGroovyの3美少女で。 http://d.hatena.ne.jp/orangeclover/20110724/1311461093 アイコンにGroovyのロゴを追加するjarを作りました http://d.hatena.ne.jp/fumokmm/20110526/1306421368 Groovy物語 http://d.hatena.ne.jp/fumokmm+tale-of-groovy/@ orange_clover @torazuka @dekchi @fumokmmさん さん} さん さん
  • 13. ここから[本編]ページ
  • 14. さて本題Groovyって業務に使っている人居ますか? たぶん趣味で触っている人がほとんど? Play FrameworkでViewにGroovy使われ ているという話もあるけど・・・
  • 15. 業務で使っている人でTLで 有名な人 TDDで Grailsで Jenkinsで @kyon_mmさん @tyamaさん 7/29(金)JGGUGで 講演予定@kiy0takaさん (こくちーずで募集中)
  • 16. TDDに関しては@kyon_mmさん JavaプロジェクトでGroovyを導入すべき 5つの理由 http://goo.gl/q8Mrt から抜粋1. 簡潔なループ処理2. 明示的なPowerAssert(エラーが見やすい)3. privateにも簡単アクセス(書き換え可能)4. 強力なデバックプリント(dump()関数)5. 簡単なリスト、マップ定義
  • 17. でもちょっと普通の人だと導入の敷居が高いですよねそれ以外で普通の人でも 導入しやすいものは?そこで Gradle の登場です
  • 18. Gradleの特徴①イメージ的には「mavenが使えるbuild.xml」 doc,src jar はivy的にDLはしないようですGant(AntBuilder)を拡張した物です。 DSL記述が出来ます(クロージャ記述)Build.xmlやpom.xmlと同じように記述する事はほぼ同じなので「Groovy凄く詳しくないと使えない」という事はありません
  • 19. Gradleの特徴②既存の構成にファイルを少し追加するイメージで使えます 既存構成を変更する必要がありません実行パターンが2つ選べます Gradle本体をインストールする場合 Gradleコマンドで実行 gradleをインストールしない場合 Gradle warperで作成した gradlew bat等で実行
  • 20. Gradleが得意な処(vs Maven)Groovyスクリプトなので、どこまで通ったかprint文でデバック出来る! Pom.xml、build.xmlのパースエラーや動 かないときは泣きそうになりますwGradle自体をインストール無でも実行可能 @bluepapa32さん インストールレスで Gradle してみる http://goo.gl/XYd8s
  • 21. Gradleが不得意な処(vs Maven①)日本語使うときには、Javaの文字コードに引きずられてしまう(winならSJIS GradleファイルもUTF-8管理なら実行時に要 環境変数定義 set JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 - Dfile.encoding=UTF-8豊富なmaven用PLUGINが使えない(Pluginもまだ少ない) Jenkinsで使う「hpi:run 」等
  • 22. Gradleが不得意な処(vs Maven②)Maven用pluginの記述を移植等するのが困難Gcc使ったり、makefile連携が難 ant.execで遣るのはちょっとw な感じ
  • 23. Gradleが得意な処(vs G系①)Gantのように「ANT_HOME」「GROOVY_HOME」指定してがない!Pluginも書けるよ(機能拡張はPluginでってRailsとかの考え方に近い? @bluepapa32 さん プロパティファイルを native2ascii するためのプラグインを作ってみ た http://goo.gl/NFGg6
  • 24. Gradleが得意な処(vs G系②)「Groovy試してみたいけどフルDLしてインストールする手間まではちょっと」にも対応可能 「Gradle Wrapper」の仕組みを使います[buildscript]の機能を使って、インストールが少ない可搬性のよいgroovyscript実行環境を作ることも可能
  • 25. 実際のMavenプロジェクトで試してみる①今回使うプロジェクト @hakurai さん fest-swing-example をforkした もの https://github.com/kimukou/fest-swing-example 元の解説スライド Automate the Swing application http://www.slideshare.net/hakuraipod/automate-the- swing-application-testing
  • 26. 実際のMavenプロジェクトで試してみる② コンパイル設定(maven)<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
  • 27. 実際のMavenプロジェクトで試してみる③ コンパイル設定(gradle) ②、③は コンパイルバージョンJDK1.6 ソースはUTF-8だよ の設定apply plugin: javadef jdkVersion = 1.6def enc = UTF-8sourceCompatibility = jdkVersiontargetCompatibility = jdkVersion[compileJava, compileTestJava].each{ it.options.encoding = enc }
  • 28. 実際のMavenプロジェクトで試してみる④ 依存記述(maven)<dependencies> <dependency> <groupId>org.easytesting</groupId> <artifactId>fest-swing</artifactId> <version>1.2.1</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.5</version> <scope>test</scope> </dependency></dependencies>
  • 29. 実際のMavenプロジェクトで試してみる⑤ 依存記述(gradle) ④、⑤は MavenからDL、クラスパス参照するjar記述 の設定dependencies { testCompile org.easytesting:fest-swing-junit-4.3.1:1.2.1 testCompile junit:junit:4.8.1}
  • 30. 実際のMavenプロジェクトで試してみる⑥ 実行(maven)set MVN_HOME=D:¥Tooldev/apache-maven-3.0.3Set JAVA_HOME=c:¥opt¥jdkset PATH=%JAVA_HOME%/bin;%MVN_HOME%/binmvn 実行(gradle)Set JAVA_HOME=c:¥opt¥jdkset PATH=%JAVA_HOME%/bingradlewgradlew –b build.gradle //ファイル名指定実行(指定しないときは build.gradle)
  • 31. TestRunnerのようなGUIで実行する場合はgradlew --gui時間があればデモ(たぶん無いはず)
  • 32. 時間があればgroovyでのtestcase追加したかったけど。。Groovyプロジェクトに変更してGriffonのFestPluginのjarを追加すれば、DSL記述でテストコード追加できるのですが。。残念ながら 今回はTimeUp ですそのうち追加してみます
  • 33. ここから[スクリプト実行環境としてのGradle] ページ たぶん話す時間はないと思う~
  • 34. スクリプト実行環境としてのGradle①GroovyConsoleやgroovyコマンドでmavenから落とせないjarを使おうとするとちょっと面倒 起動前に USER_HOME/.groovy/lib にjarをい れておく必要があり でも他のGスクリプトにも影響がw Winだと USER_HOME=%USERPROFILE%
  • 35. スクリプト実行環境としてのGradle② 下記なら実行可能だけど一般的じゃないかも Lib +- groovy-all-1.8.0.jar +- ivy-2.2.0.jar +- 追加するjar groovyset JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8%JAVA_HOME%/bin/java -cp ".;./lib/*" groovy.ui.GroovyMain %* groovyConsoleset JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8%JAVA_HOME%/bin/java -cp ".;./lib/*" groovy.ui.Console %*
  • 36. インストレスで手軽に試せる環境で 下記があるんだけど・・orz @bluepapa32さん GroovyConsole JWS http://goo.gl/G5Boz <入力履歴機能あり JWSの仕様のせいで下記のスクリプトは動かな い><(systemClassLoader 指定が出来ない)実行難なコード例)・・ローカルのなら出来ます SQL使ってCSVファイルからデータ抽出方法 これ駄目 http://goo.gl/JNaES >< @GrabConfig(systemClassLoader = true)
  • 37. スクリプト実行環境としてのGradle③buildscript という仕組みがあります Gradleファイル実行時にmavenにアクセス&ク ラスローダにライブラリ追加する仕組みbuildscript { repositories { mavenRepo urls:http://msgpack.org/maven2/ } dependencies { classpath("org.msgpack:msgpack:0.5.2-devel") }}
  • 38. スクリプト実行環境としてのGradle④従ってjavaバッチファイルとしても使えます スクリプト例) Msgpack を試した例 https://github.com/kimukou/gradlestudy/tree/ma ster/msgpack MsgPack自体の説明 http://d.hatena.ne.jp/viver/20101025/p1
  • 39. 実行結果出力gradle jarraw=[-109, -89, 109, 115, 103, 112, 97, 99, 107, -90, 107, 117, 109, 111, 102, 115, -91, 118, 105, 118, 101, 114]dst2=<java.util.ArrayList@c95717d0 elementData=[msgpack, kumofs, viver] size=3modCount=3>BUILD SUCCESSFULTotal time: 1 mins 37.735 secs"====jar running start =="src=<MyClass@196c1b0 str=msgpack num=0.4 flag=0>raw=[-109, -89, 109, 115, 103, 112, 97, 99, 107, -53, 63, -39, -103, -103, -103,-103, -103, -102, 0]dst=<MyClass@1db05b2 str=msgpack num=0.4 flag=0>"====jar running end =="
  • 40. ここから[IDE連携]ページ
  • 41. IDE GUI Pluginに関してEclipse Gradle Eclipse Plugin http://www.breskeby.com/downloads/gradle/eclipse/update/ 解説サイト @shinyaa31 さん http://goo.gl/zeV8ZIntelliJ Gradle GUI plugin http://goo.gl/Y48CP Grab plugin http://goo.gl/41swX Community Edition でも使えます。 Groovy Pluginは標準で入っています
  • 42. IDE Support Pluginに関してこちらはProjetctFile等IDEで開くのに必要なファイルを生成するのをサポートするGradleのPluginですgradle plugin 解説ページ @waman10da さん http://goo.gl/yCLOL 未翻訳ページ http://goo.gl/tXI0bEclipse Plugin 翻訳中ページ http://goo.gl/f1Bjn設定値、使用例(公開が少ない)の検証まで全然出来てません><
  • 43. ここから[Jenkins連携]ページ
  • 44. Jenkins Gradle pluginに関して現状GradleWarpperがSlaveノードで動かせない制限が マスタノードでは実行可能 ./gradlew でシェル(バッチ)実行してね環境変数がSWITCHESで設定できるけど gradle.propertiesに設定記述しておいて build.gradle内で判別する方がちゃんと動く感じ
  • 45. 使用例使用Jenkins Plugin copy-to-slave マスタからファイルをコピーするPlugin Envfile ・・設定ファイル値を環境変数にセット Setenv ・・JOB上で環境設定 Gradle ・・gradleビルド Growl ・・通知
  • 46. Jenkinsの管理=>システム設定Gradle Pluginインストール別DL、展開したGradleのパスを設定する
  • 47. JOBの記述例①
  • 48. JOBの記述例②Copy-to- slaveenvfilesetenv
  • 49. copy-to-slave Gradleのbuild.gradle、build.propertiesファイル等の記 述はほぼ同じなので、マスターからコピーする形にす る構成env-file 今回のbuild.gradleファイルはgrailsをtest-appするもの なので、GRAILS_HOMEの定義が必要(素のOSイメー ジSet-env PATHにGRAILS_HOMEを通す為に使用
  • 50. envfile.txt の記述例GIT_HOME=D:/Tooldev/GitGRADLE_HOME=D:/Tooldev/gradle-1.0-milestone-3ANT_HOME=D:/Tooldev/antMVN_HOME=D:/Tooldev/apache-maven-3.0.3GRAILS_HOME=C:/opt/grails-1.3.7GRIFFON_HOME=C:/opt/griffon-0.9.3-beta-2GROOVY_HOME=C:/opt/groovy-1.8.0#JAVA_HOME=c:/opt/jdkJAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8
  • 51. JOBの記述例③-1 Gradle warperを使った例 Wrapper構成は事前にコミット必要VM引数等
  • 52. JOBの記述例③-2インストール済Gradleを使う例
  • 53. 現在のJenkins Gradle Pluginだと JOB上の環境変数を引き継いでくれるように @kiy0taka さんが直してくれたので SWITCHESの指定は特に要らないはずです とりあえず設定できるというのを図示しました
  • 54. JOBの記述例④Growlの通知設定 ここではWin版を起動済みとします
  • 55. Jenkins関連メモ①Growl for Windows DLページ http://www.growlforwindows.com/gfw/ インストール後、通知許可設定が必要
  • 56. Jenkins関連メモ②スレーブ等の指定位置にソフトを入れる JENKINS_HOME/userContent にzip構成入れる URLの設定をしておく Jenkinsの管理=>システム設定 IP指定でもOK(スレーブ側が認知できる形で) JOB側でwget等で取得
  • 57. ここから[ワンポイント]ページ
  • 58. ローカルjar参照の話Jar 名+「-」+バージョン名で参照されます(groupはなくてもOK)下記の構成の時ProjectDir/lib +- sdloader-jsp21.jar +- swt.jarrepositories { flatDir(dirs: file("$projectDir/libs"))}dependencies { groovy group:, name:sdloader, version:jsp21‘ compile group:, name:swt, version:}
  • 59. よく使うタスク順序制御タスク名.doFirst{ //記述 } タスク開始時に実行する処理を書きますタスク名.doLast { //記述 } タスク終了後に実行する処理を書きますタスク名.dependsOn タスク名 Build.xmlでの depensOnと同じ
  • 60. Jar作成に関する記述例 アーカイブ名 と バージョン名 version = “jsp21“ //バージョン archivesBaseName = ”sdloader“ //アーカイブ名 Fat.jarと実行可能jarの話 (swt.jarだけ別同梱にする場合)manifest.mainAttributes( Main-Class : "sdloader.SystemTrayOpen", Implementation-Version: version, Class-Path: "swt.jar“)jar { //from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } ・・全参照でfatの場合 from configurations.compile.collect { it.isDirectory() ? it : it.name=="swt.jar" ?:zipTree(it) }}
  • 61. 既存の構成が微妙で動かないときGroovyファイルとJavaファイルが相互参照しているとき(位置が違うときも同じく) apply plugin: groovy sourceSets.main.groovy.srcDirs += src/main/java‘ sourceSets.main.java.srcDirs =[]resourceDir(未確認) apply plugin: groovy sourceSets.main.resources.srcDirs
  • 62. 参照設定等を外だしする方法build.gradleが実行ファイルとした場合 init.gradle <build.gradleより前に実行 ant.property(environment:env) ant.properties[env.GRADLE_OPTS]=GRADLE_OPTS gradle.properties R_HOME=C:/opt/R-2.13.0 -PXXXX による指定 参考サイト http://goo.gl/MlhaB gradle -Pyourname=literalice hello
  • 63. build.gradleファイルの分割1. apply from: gradle/other.gradle2. apply plugin: something 1. 参考: @bulepapa32 さん Gradle で環境ごとに あれもこれも変更するhttp://goo.gl/Nyizr から3. @osimajp さん build.gradle から外部の Groovy ス クリプトを呼び出して使う http://goo.gl/z4U9L
  • 64. Win環境で動かして嵌る処 「Gradle --deamon」コマンド(または下記セット)set GRADLE_OPTS=-Dorg.gradle.daemon=true GradleファイルをUTF-8保存 Gradleファイル上に日本語記述有り – エラーが出て実行できないことがあり – SJIS保存なら実行可能 – 下記の環境変数設定しても見てくれないっぽいset JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8 正規表現の記述がMac等と微妙に違う
  • 65. Win環境でじゃなくても嵌る処@fumokmm さん Gradleで--daemonオプションを付けた際にnew Fileするとうまくいかない http://d.hatena.ne.jp/fumokmm/20110727/1311717020 Gradle標準関数を出来るだけ使いましょう の話 どうも –daemonオプション依存ではないよう
  • 66. 参考にすると良いサイトGradle:Goodness http://mrhaki.blogspot.com/2009/11/gradle- goodness-creating-gradle-plugin.htmlGradle Cookbook http://docs.codehaus.org/display/GRADLE/ CookbookPracticalgradle http://www.practicalgradle.org/blog/
  • 67. ここから[メモ]ページ
  • 68. Gradle Wrapperに関して① $GRADLE_HOME/bin/gradle wrapperで作られる構成 gradlew gradlew.bat gradle/ +- wrapper/ +- gradle-wrapper.jar +- gradle-wrapper.properties Gradleフォルダは同じverの物コピーで基本OK gradle-wrapper.jarはしばらく書換っていないっぽい
  • 69. Gradle Wrapperに関して② distributionUrl 書き換えるだけで基本問題無いです#Tue Jun 28 09:56:40 EST 2011distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEdistributionVersion=1.0-milestone-4zipStorePath=wrapper/dists#urlRoot=http¥://dist.codehaus.org/gradleurlRoot=http¥://repo.gradle.org/gradle/distributions/distributionName=gradledistributionClassifier=bin 従って閉鎖空間でも、指定位置にランタイムzip置けば 使えます
  • 70. mavenからのDL時の話①USER_HOME/.ivy2にダウンロード USER_HOME/.ivy2 Groovyソースコード上でGrab記述実行時 USER_HOME/.groovy/grapes Gradleだと USER_HOME/.gradle/cache USER_HOME/.gradle/caches Mavenだと USER_HOME/.m2
  • 71. mavenからのDL時の話②G系のFWだとアプリキャッシュは下記に置かれます Ivy系のjarの参照情報持っ ている節があります USER_HOME/.grails (upgrade時に動かない時 にプロジェクトの参照情報 USER_HOME/.griffon を消して再実行すれば、 動くようになる事も) Pluginもこんな感じでDLです Svnレポ/mavenレポ .ivy2/cache/org.codehaus.griffon.plugins.griffon/0.9.3/projects/プロジェクト名/plugins
  • 72. mavenからのDL時の話③一度DLしたモジュールは他の端末の同じ位置にコピーすればDL必要ありません これで閉鎖空間端末でも実行OK!よくモジュールのDLが失敗することを経験しているので、コンパイルエラーで引っかかった対象フォルダ(plugin、jar)等を消して再実行する この場合、短気に全消しすると嵌りますG系のFWだとDLしたタイミングでの同時コンパイルはコンパイルエラーになることがある 一度 cleanコマンドを実行して再実行する事が必要
  • 73. mavenからのDL時の話④-1 Windows環境限定らしい話 Pluginのアップデート 例)griffonで下記のコマンド実行時 griffon list-plugin-updates -install griffon install-plugin XXX レポジトリに新しいpluginがある場合yesとすると削 除をしようとして「フォルダ掴んでる」でてエラー1. 手動で .griffon/0.9.3/projects/Prj名/plugins の対 象プラグインを手動で削除2. Griffon install-plugin XXXX で個別に入れる
  • 74. mavenからのDL時の話④-2 Windows環境限定らしい話 Griffon Pluginインストール失敗時のロールバック Windowsはどうもフォルダ掴む癖がある Pluginフォルダうまく消えない(フォルダが残る Plugin.xmlが消えていて参照エラー 続行不可 にで嵌ることがある1. 手動で .griffon/0.9.3/projects/Prj名/plugins の対象プラグイ ンを手動で削除2. mavenRepoの追加等をメインアプリ側で行う3. Griffon install-plugin XXXX で個別に入れる
  • 75. mavenからのDL時の話⑤ライブラリ参照でうまく起動できないとき例)griffon 0.9.3 SwingPad Mavenコマンドで入れる http://twitter.com/#!/kimukou_26/status/1185952 95415238656 のお話 Maven参照をメインアプリ側の BuildConfig.groovyに追記する http://twitter.com/#!/kimukou_26/status/1185991 88207517696 の話
  • 76. mavenからのDL時の話⑥Mavenに登録されていないjar使いたい時 GroovyConsle等 USER_PROFILE/.groovy/lib にいれて立ち上げ G系のFW等(grails、griffon等) PROJECT_HOME/lib にいれます Gradle PROJECT_HOME/lib にいれて下記記述追加 repositories { flatDir(dirs: file("$rootDir/lib")) }
  • 77. ここから[参考]ページ
  • 78. G系FWでmaven参照記述①Grails、Griffonアプリレベル [アプリ側]grails-app/conf/BuildConfig.groovyGrails、Griffon install-plugin レベル [Plugin側]grails-app/conf/BuildConfig.groovyGrails、Griffon pluginフォルダ参照レベル [アプリ側] BuildConfig.groovyに下記記載 grails.plugin.location.glassfish="../grails-glassfish" [プラグイン側]Griffon Script/_Events.groovy にmaven参照を記載
  • 79. アプリ側BuildConfig.groovyrepositories { grailsPlugins() grailsHome() grailsCentral() //mavenLocal() //mavenCentral() //mavenRepo "http://download.java.net/maven/2/" //mavenRepo "http://repository.jboss.com/maven2/" } dependencies { runtime org.atmosphere:atmosphere-jgroups:0.7.2‘ }}
  • 80. Griffon Plugin_Events.groovy(http://goo.gl/4KK79 )def manager = griffonSettings.dependencyManagermanager.parseDependencies { inherits "global“ resolvers { mavenRepo http://repo1.maven.org/maven2/” griffonCentral() mavenCentral() mavenRepo "http://tinkerpop.com/maven2" mavenRepo http://fortytwo.net/maven2 mavenRepo http://www.orientechnologies.com/listing/m2/ } compile com.tinkerpop:gremlin:1.2}
  • 81. 比較 Gradle記述①repositories { flatDir(dirs: file("$rootDir/libs")) mavenCentral() mavenRepo urls: [ "http://msgpack.org/maven2/", "http://download.java.net/maven/2/", "http://repository.jboss.org/maven2/", "http://repository.jboss.org/nexus/content/groups/public-jboss/"]}dependencies { groovy group: org.codehaus.groovy, name: groovy-all, version: 1.8.0 groovy group:‘’, name:‘sdloader’, version:‘jsp21‘ //ローカルjar参照例}
  • 82. 比較 Gradle記述②mavenRepoの記載 [Gradlle]mavenRepo の指定が複数指定可能 [Grails、Griffon」1行単位Depenciesの記載 参考URL http://goo.gl/qCJOn [Groovy]:Grab・・ http://mvnrepository.com/ 記述のまま @Grab(group=com.sun.jna, module=jna, version=3.0.9) [Grails、Griffon、Gradle] Runtime group:com.sun.jna‘ name:jna, version:3.0.9 Groovyでも1.7.5からは繋げ記述で共通化できる ‘com.sun.jna:jna:3.0.9 ‘com.sun.jna:jna:[3.0.9,)’ //3.0.9以上の意味
  • 83. 参照除外の話(Groovy1.8) GroovConsoleの場合 @irof さん SpockをGroovy1.8の GroovyConsoleから使ってみよう http://d.hatena.ne.jp/irof/20110721/p1@Grab(org.spockframework:spock-core:0.5-groovy-1.8)@GrabExclude(org.codehaus.groovy:groovy-all)import spock.lang.*class HelloSpec extends Specification { }
  • 84. 参照除外の話(gradle) Gradleの場合 @bluepapa32 さんGradle の依存関係を使いこ なしてみる http://d.hatena.ne.jp/bluepapa32/20110511/130 5135686//testCompile org.spockframework:spock-core:0.5-groovy-1.7testCompile(org.spockframework:spock-core:0.5-groovy-1.8) { exclude module: ‘org.codehaus.groovy:groovy-all}
  • 85. Init.gradleの使い方 Groovyserv0.9に適応するときの例(for win gradlew -I init.gradle -x test buildgradle.projectsLoaded { rootProject.allprojects { http://goo.gl/6VI2e buildscript { repositories {} dependencies {} ant.property(environment:env) ant.properties[env.JAVA_HOME]="c:/opt/jdk" ant.properties[env.GROOVY_HOME]="C:/opt/groovy-1.8.1“ ~略~ ant.properties[env.PATH]="${ant.properties[env.GNUSTEP_PATH]};${ant.properties[env.J AVA_HOME]}/bin" println ant.properties[env.PATH] } }}
  • 86. groovy1.8-unlimitedGroovy 1.8 finalを無視するオプション付のunlimited版がキターーーーーーッ! http://d.hatena.ne.jp/orangeclover/20110628/13 09208628 記事書いた人 @orange_cloverさん 作った人@nagai_masato さん Gbench(http://goo.gl/c1V5q )作者@Grab(com.googlecode.gbench:gbench:0.2.0‘)

×