Configuration: Introduce special source roots for non-JVM Kotlin modules
#KT-5948 Fixed #KT-23672 Fixed
This commit is contained in:
@@ -29,6 +29,7 @@ import com.intellij.openapi.roots.OrderRootType
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.util.AsyncResult
|
||||
import com.intellij.util.PairConsumer
|
||||
import com.intellij.util.PathUtil
|
||||
import org.jdom.Element
|
||||
import org.jdom.Text
|
||||
@@ -49,6 +50,7 @@ import org.jetbrains.kotlin.idea.facet.*
|
||||
import org.jetbrains.kotlin.idea.framework.detectLibraryKind
|
||||
import org.jetbrains.kotlin.idea.framework.libraryKind
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
||||
import org.jetbrains.kotlin.idea.project.targetPlatform
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import java.io.File
|
||||
@@ -314,17 +316,35 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
||||
val toBeAdded = directories.map { it.second }.toSet()
|
||||
val state = module.kotlinImporterComponent
|
||||
|
||||
val isNonJvmModule = mavenProject
|
||||
.plugins
|
||||
.asSequence()
|
||||
.filter { it.isKotlinPlugin() }
|
||||
.flatMap { it.executions.asSequence() }
|
||||
.flatMap { it.goals.asSequence() }
|
||||
.any { it !in PomFile.KotlinGoals.JvmGoals }
|
||||
|
||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
||||
|
||||
for ((type, dir) in directories) {
|
||||
if (rootModel.getSourceFolder(File(dir)) == null) {
|
||||
val jpsType: JpsModuleSourceRootType<*> = when (type) {
|
||||
SourceType.TEST -> JavaSourceRootType.TEST_SOURCE
|
||||
SourceType.PROD -> JavaSourceRootType.SOURCE
|
||||
SourceType.TEST -> testSourceRootType
|
||||
SourceType.PROD -> prodSourceRootType
|
||||
}
|
||||
|
||||
rootModel.addSourceFolder(dir, jpsType)
|
||||
}
|
||||
}
|
||||
|
||||
if (isNonJvmModule) {
|
||||
mavenProject.sources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.Source) }
|
||||
mavenProject.testSources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.TestSource) }
|
||||
mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.Resource) }
|
||||
mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.TestResource) }
|
||||
}
|
||||
|
||||
state.addedSources.filter { it !in toBeAdded }.forEach {
|
||||
rootModel.unregisterAll(it, true, true)
|
||||
state.addedSources.remove(it)
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.openapi.roots.OrderRootType
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.util.AsyncResult
|
||||
import com.intellij.util.PairConsumer
|
||||
import com.intellij.util.PathUtil
|
||||
import org.jdom.Element
|
||||
import org.jdom.Text
|
||||
@@ -49,6 +50,7 @@ import org.jetbrains.kotlin.idea.facet.*
|
||||
import org.jetbrains.kotlin.idea.framework.detectLibraryKind
|
||||
import org.jetbrains.kotlin.idea.framework.libraryKind
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
||||
import org.jetbrains.kotlin.idea.project.targetPlatform
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import java.io.File
|
||||
@@ -314,17 +316,35 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
||||
val toBeAdded = directories.map { it.second }.toSet()
|
||||
val state = module.kotlinImporterComponent
|
||||
|
||||
val isNonJvmModule = mavenProject
|
||||
.plugins
|
||||
.asSequence()
|
||||
.filter { it.isKotlinPlugin() }
|
||||
.flatMap { it.executions.asSequence() }
|
||||
.flatMap { it.goals.asSequence() }
|
||||
.any { it !in PomFile.KotlinGoals.JvmGoals }
|
||||
|
||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
||||
|
||||
for ((type, dir) in directories) {
|
||||
if (rootModel.getSourceFolder(File(dir)) == null) {
|
||||
val jpsType: JpsModuleSourceRootType<*> = when (type) {
|
||||
SourceType.TEST -> JavaSourceRootType.TEST_SOURCE
|
||||
SourceType.PROD -> JavaSourceRootType.SOURCE
|
||||
SourceType.TEST -> testSourceRootType
|
||||
SourceType.PROD -> prodSourceRootType
|
||||
}
|
||||
|
||||
rootModel.addSourceFolder(dir, jpsType)
|
||||
}
|
||||
}
|
||||
|
||||
if (isNonJvmModule) {
|
||||
mavenProject.sources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.Source) }
|
||||
mavenProject.testSources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.TestSource) }
|
||||
mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.Resource) }
|
||||
mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.TestResource) }
|
||||
}
|
||||
|
||||
state.addedSources.filter { it !in toBeAdded }.forEach {
|
||||
rootModel.unregisterAll(it, true, true)
|
||||
state.addedSources.remove(it)
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.utils.MavenArtifactScope
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.idea.configuration.RepositoryDescription
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||
@@ -506,12 +507,11 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
||||
private fun GenericDomValue<String>.isEmpty() = !exists() || stringValue.isNullOrEmpty()
|
||||
|
||||
private fun SourceFolder.isRelatedSourceRoot(isTest: Boolean): Boolean {
|
||||
val relevantRootType = when {
|
||||
isTest -> JavaSourceRootType.TEST_SOURCE
|
||||
else -> JavaSourceRootType.SOURCE
|
||||
return if (isTest) {
|
||||
rootType == JavaSourceRootType.TEST_SOURCE || rootType == KotlinSourceRootType.TestSource
|
||||
} else {
|
||||
rootType == JavaSourceRootType.SOURCE || rootType == KotlinSourceRootType.Source
|
||||
}
|
||||
|
||||
return rootType === relevantRootType
|
||||
}
|
||||
|
||||
@Suppress("Unused")
|
||||
@@ -548,6 +548,8 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
||||
const val Js = "js"
|
||||
const val TestJs = "test-js"
|
||||
const val MetaData = "metadata"
|
||||
|
||||
val JvmGoals = listOf(Compile, TestCompile)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
+2
-1
@@ -32,6 +32,7 @@ import org.jetbrains.idea.maven.dom.MavenDomUtil
|
||||
import org.jetbrains.idea.maven.indices.MavenArtifactSearchDialog
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.utils.MavenArtifactScope
|
||||
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
|
||||
import org.jetbrains.kotlin.idea.maven.PomFile
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
@@ -100,7 +101,7 @@ class AddMavenDependencyQuickFix(
|
||||
if (ids.isEmpty()) return
|
||||
|
||||
runWriteAction {
|
||||
val isTestSource = ProjectRootManager.getInstance(project).fileIndex.isInTestSourceContent(virtualFile)
|
||||
val isTestSource = ProjectRootManager.getInstance(project).fileIndex.isInTestSourceContentKotlinAware(virtualFile)
|
||||
val scope = if (isTestSource) MavenArtifactScope.TEST else null
|
||||
|
||||
PomFile.forFileOrNull(xmlFile)?.let { pom ->
|
||||
|
||||
+5
-2
@@ -30,6 +30,7 @@ import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.search.FileTypeIndex
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.idea.inspections.runInspection
|
||||
import org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenPluginPhaseInspection
|
||||
import org.jetbrains.kotlin.idea.refactoring.toPsiDirectory
|
||||
@@ -177,10 +178,12 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() {
|
||||
}
|
||||
|
||||
private fun mkJavaFile() {
|
||||
val contentEntry = getContentRoots(myProject.allModules().single().name).single()
|
||||
val sourceFolder =
|
||||
getContentRoots(myProject.allModules().single().name).single().getSourceFolders(JavaSourceRootType.SOURCE).single()
|
||||
contentEntry.getSourceFolders(JavaSourceRootType.SOURCE).singleOrNull() ?:
|
||||
contentEntry.getSourceFolders(KotlinSourceRootType.Source).singleOrNull()
|
||||
ApplicationManager.getApplication().runWriteAction {
|
||||
val javaFile = sourceFolder.file?.toPsiDirectory(myProject)?.createFile("Test.java") ?: throw IllegalStateException()
|
||||
val javaFile = sourceFolder?.file?.toPsiDirectory(myProject)?.createFile("Test.java") ?: throw IllegalStateException()
|
||||
javaFile.viewProvider.document!!.setText("class Test {}\n")
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ import com.intellij.openapi.roots.ModuleRootManager
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.util.PathUtil
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.config.*
|
||||
@@ -490,6 +492,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
compilerSettings!!.additionalArguments
|
||||
)
|
||||
}
|
||||
|
||||
assertContentFolders("project", JavaSourceRootType.SOURCE, "src/main/kotlin")
|
||||
assertContentFolders("project", JavaSourceRootType.TEST_SOURCE, "src/test/java")
|
||||
assertContentFolders("project", JavaResourceRootType.RESOURCE, "src/main/resources")
|
||||
assertContentFolders("project", JavaResourceRootType.TEST_RESOURCE, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJavaParameters() {
|
||||
@@ -601,6 +608,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals("JVM 1.8", targetPlatformKind!!.description)
|
||||
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
|
||||
}
|
||||
|
||||
assertContentFolders("project", JavaSourceRootType.SOURCE, "src/main/kotlin")
|
||||
assertContentFolders("project", JavaSourceRootType.TEST_SOURCE, "src/test/java")
|
||||
assertContentFolders("project", JavaResourceRootType.RESOURCE, "src/main/resources")
|
||||
assertContentFolders("project", JavaResourceRootType.TEST_RESOURCE, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsFacetConfiguration() {
|
||||
@@ -684,6 +696,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertEquals(JSLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsCustomOutputPaths() {
|
||||
@@ -989,6 +1006,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertImporterStatePresent()
|
||||
|
||||
Assert.assertEquals(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6], facetSettings.targetPlatformKind)
|
||||
|
||||
assertContentFolders("project", JavaSourceRootType.SOURCE, "src/main/kotlin")
|
||||
assertContentFolders("project", JavaSourceRootType.TEST_SOURCE, "src/test/java")
|
||||
assertContentFolders("project", JavaResourceRootType.RESOURCE, "src/main/resources")
|
||||
assertContentFolders("project", JavaResourceRootType.TEST_RESOURCE, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJvmDetectionByGoalWithJsStdlib() {
|
||||
@@ -1089,6 +1111,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertImporterStatePresent()
|
||||
|
||||
Assert.assertEquals(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6], facetSettings.targetPlatformKind)
|
||||
|
||||
assertContentFolders("project", JavaSourceRootType.SOURCE, "src/main/kotlin")
|
||||
assertContentFolders("project", JavaSourceRootType.TEST_SOURCE, "src/test/java")
|
||||
assertContentFolders("project", JavaResourceRootType.RESOURCE, "src/main/resources")
|
||||
assertContentFolders("project", JavaResourceRootType.TEST_RESOURCE, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByGoalWithJvmStdlib() {
|
||||
@@ -1141,6 +1168,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals(TargetPlatformKind.JavaScript, facetSettings.targetPlatformKind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByGoalWithJsStdlib() {
|
||||
@@ -1193,6 +1225,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals(TargetPlatformKind.JavaScript, facetSettings.targetPlatformKind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByGoalWithCommonStdlib() {
|
||||
@@ -1245,6 +1282,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals(TargetPlatformKind.JavaScript, facetSettings.targetPlatformKind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsAndCommonStdlibKinds() {
|
||||
@@ -1305,6 +1347,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
val libraries = rootManager.orderEntries.filterIsInstance<LibraryOrderEntry>().map { it.library as LibraryEx }
|
||||
assertEquals(JSLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-js") == true }.kind)
|
||||
assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithJvmStdlib() {
|
||||
@@ -1351,6 +1398,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals(TargetPlatformKind.Common, facetSettings.targetPlatformKind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithJsStdlib() {
|
||||
@@ -1397,6 +1449,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
Assert.assertEquals(TargetPlatformKind.Common, facetSettings.targetPlatformKind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithCommonStdlib() {
|
||||
@@ -1447,6 +1504,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJvmDetectionByConflictingGoalsAndJvmStdlib() {
|
||||
@@ -1497,6 +1559,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertImporterStatePresent()
|
||||
|
||||
Assert.assertEquals(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6], facetSettings.targetPlatformKind)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByConflictingGoalsAndJsStdlib() {
|
||||
@@ -1547,6 +1614,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertImporterStatePresent()
|
||||
|
||||
Assert.assertEquals(TargetPlatformKind.JavaScript, facetSettings.targetPlatformKind)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByConflictingGoalsAndCommonStdlib() {
|
||||
@@ -1597,6 +1669,11 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertImporterStatePresent()
|
||||
|
||||
Assert.assertEquals(TargetPlatformKind.Common, facetSettings.targetPlatformKind)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testNoPluginsInAdditionalArgs() {
|
||||
|
||||
@@ -121,7 +121,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
|
||||
}
|
||||
|
||||
protected void assertSources(String moduleName, String... expectedSources) {
|
||||
doAssertContentFolders(moduleName, JavaSourceRootType.SOURCE, expectedSources);
|
||||
assertContentFolders(moduleName, JavaSourceRootType.SOURCE, expectedSources);
|
||||
}
|
||||
|
||||
protected void assertGeneratedSources(String moduleName, String... expectedSources) {
|
||||
@@ -138,15 +138,15 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
|
||||
}
|
||||
|
||||
protected void assertResources(String moduleName, String... expectedSources) {
|
||||
doAssertContentFolders(moduleName, JavaResourceRootType.RESOURCE, expectedSources);
|
||||
assertContentFolders(moduleName, JavaResourceRootType.RESOURCE, expectedSources);
|
||||
}
|
||||
|
||||
protected void assertTestSources(String moduleName, String... expectedSources) {
|
||||
doAssertContentFolders(moduleName, JavaSourceRootType.TEST_SOURCE, expectedSources);
|
||||
assertContentFolders(moduleName, JavaSourceRootType.TEST_SOURCE, expectedSources);
|
||||
}
|
||||
|
||||
protected void assertTestResources(String moduleName, String... expectedSources) {
|
||||
doAssertContentFolders(moduleName, JavaResourceRootType.TEST_RESOURCE, expectedSources);
|
||||
assertContentFolders(moduleName, JavaResourceRootType.TEST_RESOURCE, expectedSources);
|
||||
}
|
||||
|
||||
protected void assertExcludes(String moduleName, String... expectedExcludes) {
|
||||
@@ -159,7 +159,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
|
||||
doAssertContentFolders(root, Arrays.asList(root.getExcludeFolders()), expectedExcudes);
|
||||
}
|
||||
|
||||
private void doAssertContentFolders(String moduleName, @NotNull JpsModuleSourceRootType<?> rootType, String... expected) {
|
||||
protected void assertContentFolders(String moduleName, @NotNull JpsModuleSourceRootType<?> rootType, String... expected) {
|
||||
ContentEntry contentRoot = getContentRoot(moduleName);
|
||||
doAssertContentFolders(contentRoot, contentRoot.getSourceFolders(rootType), expected);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user