The compilation fails:
[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.2.50:kapt (kapt) on project account: Compilation failure
[ERROR] [kapt] An exception occurred: java.lang.IllegalStateException: currentDirectory.parentFile must not be null
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:179)
[ERROR] at arrow.common.utils.ProcessorUtilsKt.recurseFilesUpwards(ProcessorUtils.kt:173)
[ERROR] at arrow.renzu.RenzuGenerator.generate(RenzuGenerator.kt:96)
[ERROR] at arrow.renzu.RenzuProcessor.onProcess(RenzuProcessor.kt:40)
[ERROR] at arrow.common.utils.AbstractProcessor.process(AbstractProcessor.kt:20)
[ERROR] at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:99)
[ERROR] at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
[ERROR] at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$200(JavacProcessingEnvironment.java:91)
[ERROR] at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:627)
[ERROR] at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1033)
[ERROR] at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1198)
[ERROR] at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
[ERROR] at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
[ERROR] at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:55)
[ERROR] at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:27)
[ERROR] at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:216)
[ERROR] at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:164)
[ERROR] at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:93)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:98)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:108)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:85)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:370)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:61)
[ERROR] at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:361)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.kt:343)
[ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileBunchOfSources(KotlinToJVMBytecodeCompiler.kt:242)
[ERROR] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:200)
[ERROR] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
[ERROR] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:95)
[ERROR] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:50)
[ERROR] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:88)
[ERROR] at org.jetbrains.kotlin.maven.KotlinCompileMojoBase.execCompiler(KotlinCompileMojoBase.java:237)
[ERROR] at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execCompiler(K2JVMCompileMojo.java:237)
[ERROR] at org.jetbrains.kotlin.maven.kapt.KaptJVMCompilerMojo.execCompiler(KaptJVMCompilerMojo.java:152)
[ERROR] at org.jetbrains.kotlin.maven.kapt.KaptJVMCompilerMojo.execCompiler(KaptJVMCompilerMojo.java:44)
[ERROR] at org.jetbrains.kotlin.maven.KotlinCompileMojoBase.execute(KotlinCompileMojoBase.java:220)
[ERROR] at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execute(K2JVMCompileMojo.java:222)
[ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
[ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
[ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
[ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] -> [Help 1]
if version is set to 0.7.1 everything works fine. I've tried with kotlin 1.2.41 and 1.2.50
It's a Renzu issue it seems. Is this even something we should be running on users? cc @JorgeCastilloPrz ?
This was caused by Renzu some patches ago since it expected the root dir to be named arrow. If you cloned it with a different name it could fail. It was discussed here. There's a fix by @jereksel for this on #827 which is already integrated and should be enough to fix the issue. It should be there on 0.7.2 so I don't understand why is it failing.
About running it by users, no it's not needed by them, but it's not an easy iteration. Renzu is an annotation processor so it runs whenever dependant modules are built. That means any modules in the app that depend on the processors module, will run Renzu. And those actually need to, since they provide the input sources required by the processor to crawl the hierarchy.
I've been thinking about a way to pull it out so we can run it manually (console command or whatever), but you'd need to run kapt manually passing all those module sources as input for the processor, and also remove the processor itself from the processors module (to avoid it runs on each compilation). It requires some time to investigate.
Because my fix was for Gradle. I wasn't expecting that anyone would be using Arrow with Maven.
Alright I see now that you were crawling for settings.gradle. Maybe you can add an OR to the condition that you can find on any maven repos (like the root pom or something)?
Yeah, I'll do it and add Ant and Kobalt for good measure.
I've also added #890 @pakoito. We can discuss there.