【发布时间】:2016-03-08 22:03:47
【问题描述】:
我想在 gradle 中定义一个任务(称为 gen),它运行 gradle 任务 jar,但具有 baseName 的固定值。我还希望之后可以使用原始任务jar。
我的问题是,我无法转移清单的设置。
我累了,例如
def mainFile = 'com.so.proj.App'
def filename = 'something'
jar {
baseName filename
manifest {
attributes 'Main-Class': mainFile
}
}
task gen (type: Jar) {
description "Generates JAR without version number."
doFirst {
//archiveName = jar.baseName + "." + extension
archiveName = filename + ".jar"
manifest {
attributes 'Main-Class': mainFile
}
}
}
我以为我正在重新定义 Jar 任务,方法是使用 archiveName 和 manifest 的其他值。
在运行./gradlew jar 时会生成一个可执行的 JAR 文件。
运行./gradlew gen 时会生成一个jar 文件。不幸的是,当尝试使用 java -jar build/libs/something.jar 运行程序时,我收到错误消息:
java -jar build/libs/something.jar
Error: Could not find or load main class com.so.proj.App
我做错了什么?我只是想用不同的参数运行 jar 任务(不配置 jar 任务本身,而是运行别名)。我写的代码是做什么的(运行任务时我没有收到错误。但是它在做什么?)
【问题讨论】:
-
您可能只需将
with Jar添加到您的任务生成定义中
标签: java gradle jar build.gradle