我在这里为学生收集了一些课程:https://github.com/emign/engineEmi_Lektionen/tree/master https://github.com/emign/engineEmi_Lektionen/tree/master
该项目的依赖库通过 gradle 插件注入:https://github.com/emign/engineEmi_GradlePlugin/blob/98a70b6a54c21c730a9d1cb6e4fee9ac369b8fc6/src/main/kotlin/me/emig/engineEmi/gradle/EngineEmiGradlePlugin.kt#L43 https://github.com/emign/engineEmi_GradlePlugin/blob/98a70b6a54c21c730a9d1cb6e4fee9ac369b8fc6/src/main/kotlin/me/emig/engineEmi/gradle/EngineEmiGradlePlugin.kt#L43
在 gradle 5.6.4 之前,一切都运行良好。但是当我升级包装器时,它会损坏并丢失上述库的源集。有人能帮我吗?
重现步骤:
- 克隆仓库
- 使用 gradle 包装器版本 5.6.4 -> 示例有效。 (集成了源集依赖引擎Emi)
- 使用 gradle 包装器版本 6.0 或更高版本 -> 示例中断(缺少源集依赖项engineEmi)
EDIT忘记错误信息:
> Task :compileKotlinJvm FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.2.2/userguide/command_line_interface.html#sec:command_line_warnings
1 actionable task: 1 executed
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (1, 8): Unresolved reference: me
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (16, 9): Unresolved reference: engine
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (21, 13): Unresolved reference: init
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (28, 13): Unresolved reference: viewWillLoad
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (35, 13): Unresolved reference: viewDidLoad
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (39, 13): Unresolved reference: start
它只是找不到库(包)。切换回 5.6.4 让它再次找到该库
最后我能够修复它。
问题是我可以重现的两件事的组合:
1.Kotlin多平台发布
您不需要使用 kotlin 手动创建出版物
multipatform:与发布普通 Kotlin/JVM 或 Java 相比
项目中,无需通过手动创建出版物
发布 { ... } (参见此处:1 https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html#publishing-a-multiplatform-library)
The kotlin {}
block 几乎可以为你做任何事情。您只需将发布到的存储库添加到publishing {}
堵塞。例如::
publishing {
publications {
val kotlinMultiplatform by getting {
repositories {
maven {
credentials {
username = "USERNAME"
password = System.getenv("bintrayApiKey")
}
url = uri(
"https://api.bintray.com/maven/ORG/REPO/ARTIFACT/"
)
}
}
}
}
}
2. 发布的gradle任务
不知何故,任务publishAllPublicationsToMavenRepository
不适合我。你确实需要使用publish
task
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)