Use proper manifest for kotlin-reflect in jps build
This commit is contained in:
+17
-5
@@ -432,14 +432,26 @@ fun NamedDomainObjectContainer<TopLevelArtifact>.jarFromProject(project: Project
|
|||||||
fun RecursiveArtifact.archiveFromProject(project: Project, name: String? = null, configureAction: RecursiveArtifact.() -> Unit = {}) {
|
fun RecursiveArtifact.archiveFromProject(project: Project, name: String? = null, configureAction: RecursiveArtifact.() -> Unit = {}) {
|
||||||
val jarName = name ?: project.name + ".jar"
|
val jarName = name ?: project.name + ".jar"
|
||||||
archive(jarName) {
|
archive(jarName) {
|
||||||
(project.tasks["jar"] as? Jar)?.let { jar ->
|
|
||||||
val manifestPath = jar.temporaryDir.resolve("MANIFEST.MF")
|
var foundManifest = false
|
||||||
jar.manifest.writeTo(manifestPath)
|
fun extractManifest(jar: Jar) {
|
||||||
directory("META-INF") {
|
if (jar.enabled && !foundManifest) {
|
||||||
file(manifestPath)
|
val manifestPath = jar.temporaryDir.resolve("MANIFEST.MF")
|
||||||
|
jar.manifest.writeTo(manifestPath)
|
||||||
|
directory("META-INF") {
|
||||||
|
file(manifestPath)
|
||||||
|
}
|
||||||
|
foundManifest = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
(project.tasks.findByName("modularJar") as? Jar)?.let(::extractManifest)
|
||||||
|
(project.tasks.findByName("resultJar") as? Jar)?.let(::extractManifest)
|
||||||
|
(project.tasks["jar"] as? Jar)?.let(::extractManifest)
|
||||||
|
|
||||||
|
if (!foundManifest) error("No manifest found for jar: $jarName in ${project.name}")
|
||||||
|
|
||||||
if (project.sourceSets.names.contains("main")) {
|
if (project.sourceSets.names.contains("main")) {
|
||||||
moduleOutput(moduleName(project.path))
|
moduleOutput(moduleName(project.path))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user