使用 Maven 减少 Kotlin 的“配置编译环境”时间

Jac*_*sen 3 jetbrains-ide intellij-idea maven kotlin

在使用 maven 编译期间,当 Kotlin 运行时,它会卡在“[DEBUG] 配置编译环境”上,在 40 秒的编译时间内有 20-30 秒的时间。

有没有办法尽量减少这个时间?

[INFO] Kotlin Compiler version 1.0.6-release-127
[INFO] Compiling Kotlin sources from [/Users/jacksenkline/Desktop/api/src/main/java]
[DEBUG] Classpath: /Users/jacksenkline/Desktop/api/target/api-0.1.0-SNAPSHOT/WEB-INF/classes:/Users/jacksenkline/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.9.48/appengine-api-1.0-sdk-1.9.48.jar:/Users/jacksenkline/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar:/Users/jacksenkline/.m2/repository/jstl/jstl/1.2/jstl-1.2.jar:/Users/jacksenkline/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.0.6/kotlin-stdlib-1.0.6.jar:/Users/jacksenkline/.m2/repository/org/jetbrains/kotlin/kotlin-runtime/1.0.6/kotlin-runtime-1.0.6.jar:/Users/jacksenkline/.m2/repository/org/json/json/20160810/json-20160810.jar:/Users/jacksenkline/.m2/repository/redis/clients/jedis/2.9.0/jedis-2.9.0.jar:/Users/jacksenkline/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/jacksenkline/.m2/repository/io/jsonwebtoken/jjwt/0.7.0/jjwt-0.7.0.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.2/jackson-databind-2.8.2.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.2/jackson-core-2.8.2.jar
[DEBUG] Classes directory is /Users/jacksenkline/Desktop/api/target/api-0.1.0-SNAPSHOT/WEB-INF/classes
[INFO] Module name is api
[DEBUG] Invoking compiler org.jetbrains.kotlin.cli.jvm.K2JVMCompiler@f48d6f2 with arguments:
[DEBUG] destination=/Users/jacksenkline/Desktop/api/target/api-0.1.0-SNAPSHOT/WEB-INF/classes
[DEBUG] classpath=/Users/jacksenkline/Desktop/api/target/api-0.1.0-SNAPSHOT/WEB-INF/classes:/Users/jacksenkline/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.9.48/appengine-api-1.0-sdk-1.9.48.jar:/Users/jacksenkline/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar:/Users/jacksenkline/.m2/repository/jstl/jstl/1.2/jstl-1.2.jar:/Users/jacksenkline/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.0.6/kotlin-stdlib-1.0.6.jar:/Users/jacksenkline/.m2/repository/org/jetbrains/kotlin/kotlin-runtime/1.0.6/kotlin-runtime-1.0.6.jar:/Users/jacksenkline/.m2/repository/org/json/json/20160810/json-20160810.jar:/Users/jacksenkline/.m2/repository/redis/clients/jedis/2.9.0/jedis-2.9.0.jar:/Users/jacksenkline/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/jacksenkline/.m2/repository/io/jsonwebtoken/jjwt/0.7.0/jjwt-0.7.0.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.2/jackson-databind-2.8.2.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar:/Users/jacksenkline/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.2/jackson-core-2.8.2.jar
[DEBUG] includeRuntime=false
[DEBUG] jdkHome=(null)
[DEBUG] noJdk=false
[DEBUG] noStdlib=true
[DEBUG] noReflect=false
[DEBUG] module=(null)
[DEBUG] script=false
[DEBUG] kotlinHome=(null)
[DEBUG] moduleName=api
[DEBUG] jvmTarget=(null)
[DEBUG] noCallAssertions=false
[DEBUG] noParamAssertions=false
[DEBUG] noOptimize=false
[DEBUG] reportPerf=false
[DEBUG] inheritMultifileParts=false
[DEBUG] allowKotlinPackage=false
[DEBUG] skipMetadataVersionCheck=false
[DEBUG] skipRuntimeVersionCheck=false
[DEBUG] declarationsOutputPath=(null)
[DEBUG] friendPaths=(null)
[DEBUG] PLUGIN_OPTION_FORMAT=plugin:<pluginId>:<optionName>=<value>
[DEBUG] languageVersion=(null)
[DEBUG] apiVersion=(null)
[DEBUG] suppressWarnings=false
[DEBUG] verbose=true
[DEBUG] version=false
[DEBUG] help=false
[DEBUG] extraHelp=false
[DEBUG] noInline=false
[DEBUG] repeat=(null)
[DEBUG] pluginClasspaths=(null)
[DEBUG] pluginOptions=(null)
[DEBUG] freeArgs=[/Users/jacksenkline/Desktop/api/src/main/java]
[DEBUG] unknownExtraFlags=[]
[DEBUG] End of arguments
[DEBUG] Using Kotlin home directory <no_path>
[DEBUG] Configuring the compilation environment
Run Code Online (Sandbox Code Playgroud)

Ale*_*lov 5

该消息具有误导性,它恰好是编译器在实际编译之前打印的最后一条消息。所以编译本身花费了大部分时间。