handstandsam / kmp4free

A Gradle Plugin that allows seamless switching between Kotlin JVM and the Kotlin Multiplatform Plugins
Apache License 2.0
62 stars 1 forks source link

Support JAR Resources in jvmMain #14

Closed handstandsam closed 2 years ago

handstandsam commented 2 years ago

Thank you @jonamireh for identifying the issue, and providing the reproduction case. It made it easy to figure out. Also thanks for #13 to fix this. After this fix, it worked when building with kmp4free=true, but did not work with kmp4free=false, so this diff fixes that support when it is disabled and additionally adds in a sample file so I could could test.

You can see in the debugging lines below, but we need to add it to the javaPluginExtension as well to see the debug output: Added src/jvmMain/resources as Java resources for main where it maps correctly when kmp4free is disabled.


Fix: We didn't have the support to include resources in the source directory of your src/jvmMain folder. This PR fixes that.

kmp4free=false

Screen Shot 2022-09-14 at 8 06 39 AM
--------
Mapping SourceSet commonMain -> main
** SourceSets: main now includes sources from commonMain **
Added src/commonMain/java as a Kotlin sources for main
Added src/commonMain/kotlin as a Kotlin sources for main
--------
Added src/commonMain/resources as Kotlin resources for main
Added src/commonMain/resources as Java resources for main
--------
** Configurations: main extendsFrom commonMain **
api extendsFrom commonMainApi
implementation extendsFrom commonMainImplementation
compileOnly extendsFrom commonMainCompileOnly
runtimeOnly extendsFrom commonMainRuntimeOnly
apiDependenciesMetadata extendsFrom commonMainApiDependenciesMetadata
implementationDependenciesMetadata extendsFrom commonMainImplementationDependenciesMetadata
compileOnlyDependenciesMetadata extendsFrom commonMainCompileOnlyDependenciesMetadata
runtimeOnlyDependenciesMetadata extendsFrom commonMainRuntimeOnlyDependenciesMetadata
--------
Mapping SourceSet jvmMain -> main
** SourceSets: main now includes sources from jvmMain **
Added src/jvmMain/java as a Kotlin sources for main
Added src/jvmMain/kotlin as a Kotlin sources for main
--------
Added src/jvmMain/resources as Kotlin resources for main
Added src/jvmMain/resources as Java resources for main
--------
** Configurations: main extendsFrom jvmMain **
api extendsFrom jvmMainApi
implementation extendsFrom jvmMainImplementation
compileOnly extendsFrom jvmMainCompileOnly
runtimeOnly extendsFrom jvmMainRuntimeOnly
apiDependenciesMetadata extendsFrom jvmMainApiDependenciesMetadata
implementationDependenciesMetadata extendsFrom jvmMainImplementationDependenciesMetadata
compileOnlyDependenciesMetadata extendsFrom jvmMainCompileOnlyDependenciesMetadata
runtimeOnlyDependenciesMetadata extendsFrom jvmMainRuntimeOnlyDependenciesMetadata
--------
Mapping SourceSet commonTest -> test
** SourceSets: test now includes sources from commonTest **
Added src/commonTest/java as a Kotlin sources for test
Added src/commonTest/kotlin as a Kotlin sources for test
--------
Added src/commonTest/resources as Kotlin resources for test
Added src/commonTest/resources as Java resources for test
--------

kmp4free=true

Screen Shot 2022-09-14 at 8 07 03 AM
--------
Mapping SourceSet main -> commonMain
** SourceSets: commonMain now includes sources from main **
Added src/main/java as a Kotlin sources for commonMain
Added src/main/kotlin as a Kotlin sources for commonMain
--------
Added src/main/resources as Kotlin resources for commonMain
--------
** Configurations: commonMain extendsFrom main **
commonMainApi extendsFrom api
commonMainImplementation extendsFrom implementation
commonMainCompileOnly extendsFrom compileOnly
commonMainRuntimeOnly extendsFrom runtimeOnly
commonMainApiDependenciesMetadata extendsFrom apiDependenciesMetadata
commonMainImplementationDependenciesMetadata extendsFrom implementationDependenciesMetadata
commonMainCompileOnlyDependenciesMetadata extendsFrom compileOnlyDependenciesMetadata
commonMainRuntimeOnlyDependenciesMetadata extendsFrom runtimeOnlyDependenciesMetadata
--------
Mapping SourceSet test -> jvmTest
** SourceSets: jvmTest now includes sources from test **
Added src/test/java as a Kotlin sources for jvmTest
Added src/test/kotlin as a Kotlin sources for jvmTest
--------
Added src/test/resources as Kotlin resources for jvmTest
--------
handstandsam commented 2 years ago

Fixes https://github.com/handstandsam/kmp4free/issues/15