Kotlin/Java circular dependencies in maven project

[Crossposting from Stackoverflow-hope that isn’t a problem]

So I am trying to add Kotlin into an existing Java project. I have done this before in a project built with Gradle and no issues but it seems to be a bit harder with Maven. Specifically, with circular dependencies. It seems that I can refer to Kotlin classes in Java but not the reverse (unless perhaps I compiled them in the other order).

The build section of my pom.xml is as follows:

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <executions> <execution> <id>kapt</id> <goals> <goal>kapt</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> <sourceDir>${project.basedir}/src/main/java</sourceDir> </sourceDirs> <annotationProcessorPaths> <annotationProcessorPath> <groupId>com.google.dagger</groupId> <artifactId>dagger-compiler</artifactId> <version>2.9</version> </annotationProcessorPath> <annotationProcessorPath> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </annotationProcessorPath> </annotationProcessorPaths> </configuration> </execution> <execution> <id>compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/kotlin</sourceDir> </sourceDirs> </configuration> </execution> <execution> <id>test-compile</id> <phase>test-compile</phase> <goals> <goal>test-compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/test/kotlin</sourceDir> </sourceDirs> </configuration> </execution> </executions> <configuration> <jvmTarget>17</jvmTarget> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <executions> <execution> <id>default-compile</id> <phase>none</phase> </execution> <execution> <id>default-testCompile</id> <phase>none</phase> </execution> <execution> <id>java-compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>java-test-compile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 

and I am getting the following build error:

[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.9.22:test-compile (test-compile) on project commons-integration-all: Compilation failure: Compilation failure: [ERROR] /Users/jkramer/source/commons/commons-parent/commons-integration-all/src/test/kotlin/com/commons/integration/integr/client/KotlinIntegrClientTest.kt:[4,68] Unresolved reference: IntegrResponseDeserializerTest 

Now this is in the test but I strongly suspect I would see something similar in the main path if I had such a dependency (which I don’t yet).

Any ways to address this?

Thanks!

submitted by /u/k2718
[link] [comments]