这个问题之前已经被问过很多次了,但是我尝试了所有的解决方案,没有一个对我有效。
我正在尝试使用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文件中,但都没有用。
我已经走投无路了。我做错了什么?
1条答案
按热度按时间euoag5mw1#
为什么您有:
你有没有真正的主级,而不是这三个点“..."?