greadle.propertiesを弄る
ビルド・テストで全論理コア使われると他アプリの動作が重くなるので、kotlin.test.junit5.maxParallelForksを全論理コア数 - 最低限確保したい論理コア数にしていいかも。
以前はJDK7以前を無視するオプションも有ったがいつの間にか消えていた。
各バージョンのJDKへのパス周り
gradle.propertiesのorg.gradle.java.installations.fromEnvには各バージョンのJDKへのパスを示す環境変数が定義されている。
環境変数に対応する値を追加するか、無視する場合は消す。
# Please keep it in sync with root gradle.properties. # It's currently needed for proper configuration cache work, the reason will be investigated later org.gradle.java.installations.fromEnv=\ JDK_1_8,JDK_18,\ JDK_9_0,JDK_9,\ JDK_10_0,JDK_10,\ JDK_11_0,JDK_11,\ JDK_15_0,JDK_15,\ JDK_16_0,\ JDK_17_0
テスト周り
変更
kotlin-reflect関連はcompiler/testData/codegen/box/reflectionに有る。
特にテスト追加のような変更後はgenerateTests(IDEに保存されている内だとGenerators -> GenerateTests)を実行することで、各環境向けテスト生成を行う(この結果もコミットが必要)。
実行
kotlin -> tasks -> verification -> codegenTarget8JvmXXTestを実行すれば最低限の確認は出来る。
~JvmXXTestのバージョンはProject StructureのSDKに指定されたJDKのバージョンに合わせるのが良いと思われる(例: codegenTarget8Jvm11Test)(確証は無いが、gradle側的に要求されているJava 11に合わせた状態でcodegenTarget8Jvm8Testを実行したら失敗するものが出てきてしまった)。
成果物の生成先
kotlin-reflectのjarはlibraries/reflect/build/libs/kotlin-reflect-${バージョン}-SNAPSHOT-sources.jarに出力される。
ベンチマーク等を取る時はこの辺りを使う。