Gradle3.0
Gradle 3.0が出ました。
Gradle Release Notes
Kotlinがbuildスクリプトで使えるようになったらしいです。ウケる。
「使ってみろ」と天の声が聴こえた気がするので、使ってみましょう。
ちなみに、お前ら付き合いたてのカップルかよって感じのブログタイトルがこちら2つです。
Gradle Meets Kotlin - Kotlin Blog
Kotlin Meets Gradle - Gradle
Getting Started的な
Gradle wrapper のバージョン更新についてのメモを参考にして、
以下のように書き換える。
・ gradle-wrapper.properties
#Fri Aug 19 21:14:38 JST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-3.0-bin.zip
ここにgradleの色んなversionがアーカイブされているわけですね。
http://services.gradle.org/distributions/
で、gradle wrapperでversionを指定してあげる。
そして始まるダウンロード・フェスティバル。
./gradlew wrapper --gradle-version=3.0 Downloading https://services.gradle.org/distributions/gradle-3.0-bin.zip ......................................................................
とり込み完了したっぽいので一応version確認。
./gradlew wrapper –gradle-version=3.0 –version ======================================= Gradle 3.0 ======================================= Build time: 2016-08-15 13:15:01 UTC Revision: ad76ba00f59ecb287bd3c037bd25fc3df13ca558 Groovy: 2.4.7 Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015 JVM: 1.8.0_92 (Oracle Corporation 25.92-b14) OS: Mac OS X 10.11.2 x86_64
おっけー。
build.gradleをbuild.gradle.ktsにrename
ちょっとためしに使ってみます。
build.gradleをbuild.gradle.ktsにしても動くはず。
このGradleの人の動画とか見つつ。
Gradle Goes Kotlin by Hans Dockter
gradleのGitHubリポジトリとか見つつ。
gradle/gradle-script-kotlin
build.gradle.ktsはこんな感じにしました(しかし、名前がダサい)。
import org.gradle.api.plugins.* import org.gradle.api.tasks.wrapper.* import org.gradle.script.lang.kotlin.* group = "gradle-meets-kotlin" version = "1.0.0-SNAPSHOT" val kotlinVersion by extra.properties apply { plugin("application") } configure<ApplicationPluginConvention> { mainClassName = "samples.HelloWorld" applicationName = "gradle-meets-kotlin" } repositories { jcenter() mavenCentral() } dependencies { "testCompile"("junit:junit:4.12") }
そして、よくあるエントリポイントを用意しますね。
package samples; /** * Created by yy_yank on 2016/08/19. */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello Gradle Kotlin"); } }
んで、./gradlew wrapper –gradle-version=3.0 runしてみるが何故かうまくいかない。なんで???
settings.gradleが大事
お、settings.gradleが重要ぽい。
rootProject.name = 'gradle-meets-kotlin' rootProject.buildFileName = 'build.gradle.kts'
再度実行。
./gradlew wrapper --gradle-version=3.0 run :wrapper UP-TO-DATE :compileJava :processResources UP-TO-DATE :classes :run Hello Gradle Kotlin BUILD SUCCESSFUL Total time: 4.437 secs
おー、やったー!動きました!
まとめ
よく分からないけど、まぁ動く。
現状IntelliJ IDEA CEでは補完とか
シンタックスハイライトが効いてない気がするんです(Ultimate Edition買えってことかな)。
関数とかクラスへのジャンプも出来なかったので、
もう少し遊ぼうかみたいなのがなかなかやりにくい。
しかし、Gradleの人のデモを見る限り、
コード補完とかちゃんと効いてたのでそうなっていくのでしょう!!
そして多分IDEでgradle runなりgradle testする前に
静的な型チェックが出来るということを推して行きたいんでしょうね。
IDEがコンパイルエラーになって赤くしてくれるので早めに気づけるし、
割とGroovyに近いDSLは書けますよ、みたいな。
面白いこと出来そうだなぁっと思ったのは(引用ですが)こんなのが出来るのとか。
dependencies { compile(kotlin("stdlib")) compile(kotlin("reflect")) compile(kotlin("compiler-embeddable")) } fun kotlin(module: String) = "org.jetbrains.kotlin:kotlin-$module:$kotlinVersion"
こんなタスクとかですかね。
tasks.withType<Jar> { from(the<JavaPluginConvention>().sourceSets.getByName("main").allSource) manifest.attributes.apply { put("Implementation-Title", "Gradle Script Kotlin") put("Implementation-Version", version) } }
したがって、単なる依存管理とかビルドから少し離れて
タスクランナーとしてちょこっとやりたいとか言う時は便利なのかもしれませんね。
Groovyな人は多分そのままbuild.gradleで良いんだと思いますがw
コードはこちら。
https://github.com/yyYank/gradle-meets-kotlin
という感じでした!!以上!!!
追記
@yy_yank あれできた? pic.twitter.com/bVHfEy4wsG
— しおしお (@_siosio_) August 19, 2016
@yy_yank 2016.2.2ですね。Kotlinプラグイン1.1系にしてます? pic.twitter.com/n1ZnNkEMzS
— しおしお (@_siosio_) August 19, 2016
これや!!!
「Tools>Kotlin>Configure Kotlin Plugin Updates」
もしくはsearch everywhere で「Kotlin Plugin Updates」を探すと
Early Access Preview 1.1をプルダウンで選択し、Check for updates nowを押すと、
インストールボタンが表示されるので、インストールします。
これでbuilde.gradle.ktsのコード補完が効くようになる!はず!
で、どうやらUltimate Editionではコード補完は効くのですが、Community Editionは未対応っぽいです。
ただ、普通に設定すればgradle runとかは可能ですのであしからず!!
0 件のコメント:
コメントを投稿