2017-11-05 11 views
2

kotlin関数の前にprintlnステートメントを入れるとクラッシュします。スタックトレース:Kotlin未解決の参照:CLIのgradleからのprintln

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ gradle clean build --stacktrace 
w: Classpath entry points to a non-existent location: 
e: /home/thufir/NetBeansProjects/kotlin/src/main/kotlin/example.kt: (14, 5): Unresolved reference: println 

> Task :compileKotlin 
Using Kotlin incremental compilation 


FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':compileKotlin'. 
> Compilation error. See log for more details 

* Try: 
Run with --info or --debug option to get more log output. 

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileKotlin'. 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 
     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:61) 
     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) 
     at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 
     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 
     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
     at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98) 
     at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) 
     at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) 
     at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 
     at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 
     at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 
Caused by: org.gradle.api.GradleException: Compilation error. See log for more details 
     at org.jetbrains.kotlin.gradle.tasks.TasksUtilsKt.throwGradleExceptionIfError(tasksUtils.kt:8) 
     at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.processCompilerExitCode(Tasks.kt:359) 
     at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:333) 
     at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:231) 
     at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:203) 
     at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:179) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:135) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:122) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) 
     ... 29 more 


* Get more help at https://help.gradle.org 

BUILD FAILED in 0s 
2 actionable tasks: 2 executed 
[email protected]:~/NetBeansProjects/kotlin$ 

問題のある行を取り出す、成功した出力:

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ gradle clean runShadow 
w: Classpath entry points to a non-existent location: 

> Task :compileKotlin 
Using Kotlin incremental compilation 

> Task :shadowJar 
The SimpleWorkResult type has been deprecated and is scheduled to be removed in Gradle 5.0. Please use WorkResults.didWork() instead. 

> Task :runShadow 
Nov 04, 2017 8:42:47 PM net.bounceme.dur.kotlin.App run 
INFO: running 
Nov 04, 2017 8:42:47 PM net.bounceme.dur.kotlin.App run 
INFO: integer is    2 
Nov 04, 2017 8:42:47 PM net.bounceme.dur.kotlin.App run 
INFO: integer is    4 


BUILD SUCCESSFUL in 1s 
7 actionable tasks: 7 executed 
[email protected]:~/NetBeansProjects/kotlin$ 

のjava:

package net.bounceme.dur.kotlin; 

import java.util.logging.Logger; 

public class App { 

    private static final Logger LOG = Logger.getLogger(App.class.getName()); 

    private void run() { 
     LOG.info("running"); 

     int integer = 2; 
     LOG.info("integer is\t\t" + integer); 
     new demo.Foo(); 
     demo.ExampleKt.bar(); 
     integer = demo.ExampleKt.doubleUp(integer); 
     LOG.info("integer is\t\t" + integer); 
    } 

    public static void main(String[] args) { 
     new App().run(); 
    } 
} 

kotlin:

package demo; 

class Foo 

val PI = 3.14 
var x = 0 

fun bar() { 
    x += 1 
} 


fun doubleUp(value: Int): Int { 
    return value * 2 
} 

ビルドファイル:

plugins { 
    id 'com.gradle.build-scan' version '1.8' 
    // id 'java' 
    id 'application' 
    id "org.jetbrains.kotlin.jvm" version "1.1.51" 
    id 'com.github.johnrengelman.shadow' version '2.0.1' 
} 

buildScan { 
    licenseAgreementUrl = 'https://gradle.com/terms-of-service' 
    licenseAgree = 'yes' 
    //publishAlways() 
} 

configurations { 
    provided 
} 

shadowJar { 
    baseName = 'kotlinAdder' 
    classifier = null 
    version = null 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

mainClassName = 'net.bounceme.dur.kotlin.App' 

repositories { 
    jcenter() 
} 

configurations { 
    provided 
} 

dependencies { 
} 

環境:

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ kotlin -version 
Kotlin version 1.1.51 (JRE 1.8.0_151-b12) 
[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ kotlinc -version 
info: kotlinc-jvm 1.1.51 (JRE 1.8.0_151-b12) 
[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ java -version 
java version "1.8.0_151" 
Java(TM) SE Runtime Environment (build 1.8.0_151-b12) 
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 
[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ javac -version 
javac 1.8.0_151 
[email protected]:~/NetBeansProjects/kotlin$ 

プロジェクト:

. 
├── build.gradle 
├── gradle 
│   └── wrapper 
│    ├── gradle-wrapper.jar 
│    └── gradle-wrapper.properties 
├── gradlew 
├── gradlew.bat 
├── settings.gradle 
└── src 
    ├── main 
    │   ├── java 
    │   │   └── net 
    │   │    └── bounceme 
    │   │     └── dur 
    │   │      └── kotlin 
    │   │       └── App.java 
    │   └── kotlin 
    │    └── example.kt 
    └── test 
     └── java 

12 directories, 8 files 

ことが可能と同じくらい簡単です、JavaはKotlinを呼び出します。どのように他の方法を単純化できるかわからないこれはversion問題ですか?

私はnetbeansを使っていますが、gradleは純粋にCLIから実行されています。私はNBファイルを削除することもできますそれは有用であると証明する必要があります..

おそらく私はコンソールに印刷していませんcorrectly

答えて

2

doh。コットリンrequired

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ gradle clean shadowJar 

> Task :compileKotlin 
Using Kotlin incremental compilation 

> Task :shadowJar 
The SimpleWorkResult type has been deprecated and is scheduled to be removed in Gradle 5.0. Please use WorkResults.didWork() instead. 


BUILD SUCCESSFUL in 1s 
4 actionable tasks: 4 executed 
[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ gradle runShadow 

> Task :runShadow 
Nov 04, 2017 10:43:44 PM net.bounceme.dur.kotlin.App run 
INFO: running 
Nov 04, 2017 10:43:44 PM net.bounceme.dur.kotlin.App run 
INFO: integer is    2 
hellooo from kotlin 
Nov 04, 2017 10:43:44 PM net.bounceme.dur.kotlin.App run 
INFO: integer is    4 


BUILD SUCCESSFUL in 1s 
6 actionable tasks: 3 executed, 3 up-to-date 
[email protected]:~/NetBeansProjects/kotlin$ 



plugins { 
    id 'com.gradle.build-scan' version '1.8' 
    // id 'java' 
    id 'application' 
    id "org.jetbrains.kotlin.jvm" version "1.1.51" 
    id 'com.github.johnrengelman.shadow' version '2.0.1' 
} 

buildScan { 
    licenseAgreementUrl = 'https://gradle.com/terms-of-service' 
    licenseAgree = 'yes' 
    //publishAlways() 
} 

configurations { 
    provided 
} 

shadowJar { 
    baseName = 'kotlinAdder' 
    classifier = null 
    version = null 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

mainClassName = 'net.bounceme.dur.kotlin.App' 

repositories { 
    jcenter() 
} 

configurations { 
    provided 
} 

dependencies { 
    compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.51" 
} 

依存関係を追加する必要があります。

関連する問題