Gradle
導入
/c/tools
にダウンロードする。
bin
フォルダにパスを通しておく。
(cd ~/downloads && curl -LO https://services.gradle.org/distributions/gradle-5.1.1-bin.zip) &&
mkdir /c/tools; unzip -d /c/tools/ ~/downloads/gradle-5.1.1-bin.zip
Kotlin
gradle init
プロジェクトの gradle バージョンを上げる
./gradlew wrapper --gradle-version=<version>
# ex:
./gradlew wrapper --gradle-version=5.4.1
Ref: https://docs.gradle.org/current/release-notes.html
gradle 自体のバージョンを上げる
gradle/wrapper/gradle-wrapper.properties
を編集する。
distributionUrl=https\://services.gradle.org/distributions/gradle-5.3-all.zip
https://services.gradle.org/distributions/ をみると一覧がわかる。
CLI
新規プロジェクトを作成する。
gradle init
デーモンなしで実行
./gradlew --no-daemon build
build.gralde
依存ライブラリで定義している変数の上書き
ext[]
を使う。
例えば、Spring はjunit-bom
のバージョンをjunit-jupiter.version
で指定しているが、これを新しいバージョンに置き換える。など。
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-dependencies/pom.xml#L123
ext['junit-jupiter.version'] = '5.4.0'
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter'
}
FAQ
Failed to notify project evaluation listener
(特に DB とかで)ビルドして出来上がった jar に依存関係がダウンロードされていない
キャッシュのせいらしい。
gradle clean BuildCache
# or ./gradlew clean BuildCache
java.nio.file.AccessDeniedException
.cache ディレクトリに権限を与える
sudo chown -R root:${USER} /c/linux_home/.cache/
sudo chmod -R 775 /c/linux_home/.cache/
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory()
こんなエラーがでた。gradle wrapper のバージョン変更後などに起こる?
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type FileHasher using BuildSessionScopeServices.createFileSnapshotter().
~/.cache
の権限がないことが原因。sudo ./gradlew
でも動くが、sudo
しなくてもいいようにchown
する。
sudo chown -R ${USER}:${USER} /c/linux_home/.cache/
sudo chmod -R 775 /c/linux_home/.cache/
# 一度buildディレクトリを消さないとPermission Deniedされる
rm -fr build
# その後、プロジェクトルートで(sudoはつけない)
./gradlew