Maven: Do not consider 'kapt' and 'test-kapt' executions as non-JVM (KT-26211)
This commit is contained in:
@@ -330,7 +330,7 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
|||||||
.filter { it.isKotlinPlugin() }
|
.filter { it.isKotlinPlugin() }
|
||||||
.flatMap { it.executions.asSequence() }
|
.flatMap { it.executions.asSequence() }
|
||||||
.flatMap { it.goals.asSequence() }
|
.flatMap { it.goals.asSequence() }
|
||||||
.any { it !in PomFile.KotlinGoals.JvmGoals }
|
.any { it in PomFile.KotlinGoals.CompileGoals && it !in PomFile.KotlinGoals.JvmGoals }
|
||||||
|
|
||||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
||||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
|||||||
.filter { it.isKotlinPlugin() }
|
.filter { it.isKotlinPlugin() }
|
||||||
.flatMap { it.executions.asSequence() }
|
.flatMap { it.executions.asSequence() }
|
||||||
.flatMap { it.goals.asSequence() }
|
.flatMap { it.goals.asSequence() }
|
||||||
.any { it !in PomFile.KotlinGoals.JvmGoals }
|
.any { it in PomFile.KotlinGoals.CompileGoals && it !in PomFile.KotlinGoals.JvmGoals }
|
||||||
|
|
||||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
||||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
||||||
|
|||||||
@@ -547,11 +547,13 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
|||||||
object KotlinGoals {
|
object KotlinGoals {
|
||||||
const val Compile = "compile"
|
const val Compile = "compile"
|
||||||
const val TestCompile = "test-compile"
|
const val TestCompile = "test-compile"
|
||||||
|
|
||||||
const val Js = "js"
|
const val Js = "js"
|
||||||
const val TestJs = "test-js"
|
const val TestJs = "test-js"
|
||||||
const val MetaData = "metadata"
|
const val MetaData = "metadata"
|
||||||
|
|
||||||
val JvmGoals = listOf(Compile, TestCompile)
|
val JvmGoals = listOf(Compile, TestCompile)
|
||||||
|
val CompileGoals = listOf(Compile, TestCompile, Js, TestJs, MetaData)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -175,6 +175,98 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
|||||||
assertTestSources("project", "src/test/java", "src/test/kotlin", "src/test/kotlin.jvm")
|
assertTestSources("project", "src/test/java", "src/test/kotlin", "src/test/kotlin.jvm")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testWithKapt() {
|
||||||
|
createProjectSubDirs("src/main/kotlin", "src/main/kotlin.jvm", "src/test/kotlin", "src/test/kotlin.jvm")
|
||||||
|
|
||||||
|
importProject(
|
||||||
|
"""
|
||||||
|
<groupId>test</groupId>
|
||||||
|
<artifactId>project</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
|
<artifactId>kotlin-stdlib</artifactId>
|
||||||
|
<version>$kotlinVersion</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
|
<artifactId>kotlin-maven-plugin</artifactId>
|
||||||
|
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>kapt</id>
|
||||||
|
<goals>
|
||||||
|
<goal>kapt</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirs>
|
||||||
|
<sourceDir>src/main/kotlin</sourceDir>
|
||||||
|
<sourceDir>src/main/java</sourceDir>
|
||||||
|
</sourceDirs>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
|
||||||
|
<execution>
|
||||||
|
<id>compile</id>
|
||||||
|
<phase>compile</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>compile</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirs>
|
||||||
|
<sourceDir>src/main/kotlin</sourceDir>
|
||||||
|
<sourceDir>src/main/java</sourceDir>
|
||||||
|
</sourceDirs>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
|
||||||
|
<execution>
|
||||||
|
<id>test-kapt</id>
|
||||||
|
<goals>
|
||||||
|
<goal>test-kapt</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirs>
|
||||||
|
<sourceDir>src/test/kotlin</sourceDir>
|
||||||
|
<sourceDir>src/test/java</sourceDir>
|
||||||
|
</sourceDirs>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
|
||||||
|
<execution>
|
||||||
|
<id>test-compile</id>
|
||||||
|
<phase>test-compile</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>test-compile</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirs>
|
||||||
|
<sourceDir>src/test/kotlin</sourceDir>
|
||||||
|
<sourceDir>src/test/java</sourceDir>
|
||||||
|
<sourceDir>target/generated-sources/kapt/test</sourceDir>
|
||||||
|
</sourceDirs>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
assertModules("project")
|
||||||
|
assertImporterStatePresent()
|
||||||
|
|
||||||
|
assertSources("project", "src/main/java", "src/main/kotlin")
|
||||||
|
assertTestSources("project", "src/test/java", "src/test/kotlin")
|
||||||
|
}
|
||||||
|
|
||||||
fun testReImportRemoveDir() {
|
fun testReImportRemoveDir() {
|
||||||
createProjectSubDirs("src/main/kotlin", "src/main/kotlin.jvm", "src/test/kotlin", "src/test/kotlin.jvm")
|
createProjectSubDirs("src/main/kotlin", "src/main/kotlin.jvm", "src/test/kotlin", "src/test/kotlin.jvm")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user