Gradle の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Gradle へ行く。
- Gradle の差分を削除
--- keywords: [Gradle] description: 汎用ビルドツールであるGradleの使い方についてメモしています。 author: aterai pubdate: 2016-12-13T13:37:28+09:00 --- #contents * 概要 [#about] * インストール [#install] - `Windows` + `Cygwin`の環境で`SDKMAN`から`Gradle`をインストール - `Cygwin` -- `setup-x86_64.exe`などから、`curl`、`unzip`、`zip`をインストール - `SDKMAN`: `Cygwin terminal`などから、以下を実行してインストールし、ターミナルを再起動 - `SDKMAN`: `Cygwin terminal`などから以下を実行してインストールし、ターミナルを再起動 curl -s "https://get.sdkman.io" | bash - `Gradle`: sdk install gradle * サンプル [#example] [https://github.com/aterai/java-swing-tips aterai/java-swing-tips]のような、大量(`1000`ファイルを超える)のサブプロジェクトが存在する場合のサンプルです。 [https://github.com/aterai/java-swing-tips aterai/java-swing-tips]のような大量(`1000`ファイルを超える)のサブプロジェクトが存在する場合のサンプルです。 - `build.gradle` #code{{ description 'Java Swing Tips' allprojects { apply { plugin 'java' plugin 'application' plugin 'pmd' plugin 'checkstyle' } repositories { mavenCentral() jcenter() } def defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encoding = defaultEncoding pmd { consoleOutput = true ignoreFailures = true incrementalAnalysis = true ruleSetFiles = files("${rootProject.projectDir}/ruleset.xml") ruleSets = [] // ruleSetFiles のみを使用する場合は ruleSets を空にする必要がある } checkstyle { ignoreFailures = true configFile = file("${rootProject.projectDir}/checks.xml") } } subprojects { sourceSets { main { //デフォルトプロジェクトレイアウトでは src/main/java java { srcDir 'src/java' } //デフォルトプロジェクトレイアウトでは src/main/resources resources { srcDir 'src/java' } } } ext.config = new ConfigSlurper().parse(new File("${project.projectDir}/config.gradle").toURL()) mainClassName = config.main.class // In this section you declare where to find the dependencies of your project repositories { flatDir { dirs "${project.projectDir}/lib" } } // In this section you declare the dependencies for your production and test code dependencies { implementation fileTree(dir: "${project.projectDir}/lib", include: '*.jar') } version = config.version jar { manifest { attributes 'Implementation-Version': config.version, 'Implementation-Vendor': config.vendor, 'Main-Class': config.main.class, 'Class-Path': config.runtime.classpath } } } }} - `settings.gradle` #code{{ // サブプロジェクトとしてAccordionPanel~ZoomingAndPanningを追加 // 700ほど追加すると重い... file('.').eachDirMatch(~/[a-zA-Z]+/) { include it.name } }} - `AccordionPanel`~`ZoomingAndPanning`以下に`config.gradle` #code{{ vendor = 'Java Swing Tips - https://ateraimemo.com/' version '1.0-SNAPSHOT' year = '2003-2019' main.class = 'example.MainPanel' runtime.classpath = '.' }} * 実行方法 [#excute] - すべてのサブプロジェクトを実行 $ gradle clean :clean UP-TO-DATE :AccordionPanel:clean :ActionMap:clean ... 中略 ... :ZoomAndPanPanel:clean UP-TO-DATE :ZoomingAndPanning:clean UP-TO-DATE BUILD SUCCESSFUL Total time: 8.747 secs `Ant`で同様に`clean`タスクを実行すると`5`秒程度 $ ant -f all.xml -Dall=clean Buildfile: C:\tmp\jst\all.xml all: clean: clean: [delete] Deleting directory C:\tmp\jst\AccordionPanel\target ... 中略 ... clean: [delete] Deleting directory C:\tmp\jst\ZoomingAndPanning\target BUILD SUCCESSFUL Total time: 5 seconds - サブプロジェクトを指定して実行 $ gradle :ZoomingAndPanning:check :ZoomingAndPanning:compileJava UP-TO-DATE :ZoomingAndPanning:processResources UP-TO-DATE :ZoomingAndPanning:classes UP-TO-DATE :ZoomingAndPanning:checkstyleMain :ZoomingAndPanning:compileTestJava UP-TO-DATE :ZoomingAndPanning:processTestResources UP-TO-DATE :ZoomingAndPanning:testClasses UP-TO-DATE :ZoomingAndPanning:checkstyleTest UP-TO-DATE :ZoomingAndPanning:findbugsMain :ZoomingAndPanning:findbugsTest UP-TO-DATE :ZoomingAndPanning:pmdMain :ZoomingAndPanning:pmdTest UP-TO-DATE :ZoomingAndPanning:test UP-TO-DATE :ZoomingAndPanning:check BUILD SUCCESSFUL Total time: 17.056 secs - サブプロジェクトディレクトリを指定して実行 $ gradle clean run -q --project-dir ZoomingAndPanning/ * 参考リンク [#reference] - [http://gradle.monochromeroad.com/docs/userguide/userguide.html Gradle User Guide] - [http://d.hatena.ne.jp/masanobuimai/20120528/1338213342 Gradleなんとなくわかってきた(その2) - marsのメモ] - [https://www.ne.jp/asahi/hishidama/home/tech/groovy/gradle/index.html Gradleメモ(Hishidama's Gradle Memo)] * コメント [#comment] #comment #comment