diff --git a/README.md b/README.md index 8433445..94f4fb6 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ runtime dependencies that they reference. The platform APIs can be specified by the JVM, a set of dependencies, or serialized type descriptors. -## Basic setup +## Basic Gradle setup -The most convenient way to run this tool is via the provided Gradle plugin. +The preferred mechanism to run Expediter is the provided Gradle plugin. ```kotlin plugins { @@ -300,3 +300,16 @@ expediter { The output of the `jvm` check will be written into `build/expediter-jvm.json`, and the output of the `android` check will be written into `build/expediter-android.json`. + +## CLI + +Expediter ships a simple CLI packaged as an uberjar. + +``` +java -jar cli--all.jar \ + --project-classes=classes/ \ + --libraries=lib/lib1.jar \ + --libraries=lib/lib2.jar \ + --jvm-platform=17 \ + --output=expediter.json +``` \ No newline at end of file diff --git a/cli/src/main/kotlin/com/toasttab/expediter/cli/ExpediterCliCommand.kt b/cli/src/main/kotlin/com/toasttab/expediter/cli/ExpediterCliCommand.kt index ed7a0d9..3b6a331 100644 --- a/cli/src/main/kotlin/com/toasttab/expediter/cli/ExpediterCliCommand.kt +++ b/cli/src/main/kotlin/com/toasttab/expediter/cli/ExpediterCliCommand.kt @@ -16,6 +16,7 @@ package com.toasttab.expediter.cli import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.core.main import com.github.ajalt.clikt.parameters.options.default import com.github.ajalt.clikt.parameters.options.multiple import com.github.ajalt.clikt.parameters.options.option diff --git a/cli/src/test/kotlin/com/toasttab/expediter/cli/ExpediterCliCommandIntegrationTest.kt b/cli/src/test/kotlin/com/toasttab/expediter/cli/ExpediterCliCommandIntegrationTest.kt index a13cdff..9ac64bf 100644 --- a/cli/src/test/kotlin/com/toasttab/expediter/cli/ExpediterCliCommandIntegrationTest.kt +++ b/cli/src/test/kotlin/com/toasttab/expediter/cli/ExpediterCliCommandIntegrationTest.kt @@ -15,6 +15,7 @@ package com.toasttab.expediter.cli +import com.github.ajalt.clikt.core.main import com.toasttab.expediter.issue.Issue import com.toasttab.expediter.issue.IssueReport import com.toasttab.expediter.types.MemberAccess @@ -42,7 +43,7 @@ class ExpediterCliCommandIntegrationTest { } + listOf( "--project-classes", System.getProperty("classes"), "--output", output.toString(), - "--jvm-platform", "11" + "--jvm-platform", "8" ) ) @@ -51,9 +52,16 @@ class ExpediterCliCommandIntegrationTest { } expectThat(report.issues).contains( - Issue.MissingType( - caller = "com/github/ajalt/mordant/internal/nativeimage/WinKernel32Lib", - target = "org/graalvm/word/PointerBase" + Issue.MissingMember( + caller = "com/toasttab/expediter/provider/PlatformClassloaderTypeProvider", + member = MemberAccess.MethodAccess( + "java/lang/ClassLoader", + ref = MemberSymbolicReference( + "getPlatformClassLoader", + "()Ljava/lang/ClassLoader;" + ), + accessType = MethodAccessType.STATIC + ) ) ) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b432351..a5b7307 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ kotlin = "2.0.20" serialization = "1.7.3" asm = "9.7" -clikt = "4.4.0" +clikt = "5.0.0" nexus = "1.3.0" ktlint = "0.50.0"