intellij-idea jar、IntelliJ中没有主清单属性

sshcrbum  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(253)

这个问题之前已经被问过很多次了,但是我尝试了所有的解决方案,没有一个对我有效。
我正在尝试使用IntelliJ和Gradle构建一个简单的单模块.jar程序。以下是我的build.gradle.kts文件:

plugins {
    id("java")
}

group = ...
version = ...

repositories {
    mavenCentral()
}

dependencies {
    implementation("com.itextpdf:itext7-core:7.2.3")
    implementation("jakarta.mail:jakarta.mail-api:2.1.0")
    implementation("org.apache.commons:commons-csv:1.9.0")
    implementation("commons-net:commons-net:3.8.0")
    implementation("mysql:mysql-connector-java:8.0.30")

    val slf4jVersion = "2.0.3"
    implementation("org.slf4j:slf4j-api:$slf4jVersion")
    implementation("org.slf4j:slf4j-simple:$slf4jVersion")

    testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1")
}

tasks.withType<Jar> {
    manifest {
        attributes["Main-Class"] = ...
        attributes["Class-Path"] = configurations.runtimeClasspath.get().asPath
    }

//    from(configurations.compileClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
}

tasks.getByName<Test>("test") {
    useJUnitPlatform()
}

我现在把from(configurations...)行注解掉了,但不管怎样,它都不起作用。
问题是,当我尝试构建一个.jar文件并运行它(在终端中)时,我只是得到错误:
no main manifest attribute, in ...jar
我已经为此创建了几十个不同的工件,尝试了不同的排列方式。我试过将我的META-INF文件夹放在resources或src/main中。我试过直接在项目结构的工件菜单中将资源、META-INF和清单本身的内容添加到jar文件中,但都没有用。
我已经走投无路了。我做错了什么?

euoag5mw

euoag5mw1#

为什么您有:

attributes["Main-Class"] = ...

你有没有真正的主级,而不是这三个点“..."?

相关问题