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 = {}) {
|
||||
val jarName = name ?: project.name + ".jar"
|
||||
archive(jarName) {
|
||||
(project.tasks["jar"] as? Jar)?.let { jar ->
|
||||
val manifestPath = jar.temporaryDir.resolve("MANIFEST.MF")
|
||||
jar.manifest.writeTo(manifestPath)
|
||||
directory("META-INF") {
|
||||
file(manifestPath)
|
||||
|
||||
var foundManifest = false
|
||||
fun extractManifest(jar: Jar) {
|
||||
if (jar.enabled && !foundManifest) {
|
||||
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")) {
|
||||
moduleOutput(moduleName(project.path))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user