我第一次尝试使用Gradle。我正在尝试使用maven java项目来编译和创建一个jar文件。它正在编译和创建build / libs目录中的jar文件
躯干 -XXXVERSION-SNAPSHOT.jar
我正在从这个maven java项目的trunk目录运行gradle构建文件。
我想在jar文件名中获取项目名称(例如:project1),类似于
PROJECT1 -XXXVERSION-SNAPSHOT.jar
在build / libs目录中。 请建议。
答案 0 :(得分:88)
尝试设置:
archivesBaseName = 'project1'
或
jar.baseName = 'project1'
以下是完整的解决方案:
trunk
˪ build
˪ libs
˪ project1-1.0-SNAPSHOT.jar
˪ build.gradle
build.gradle是:
apply plugin: 'java'
apply plugin: 'maven'
archivesBaseName = 'project1'
version = '1.0-SNAPSHOT'
group = 'example'
它生成正确的ZIP,POM和JAR。
答案 1 :(得分:46)
默认项目名称取自存储项目的目录。除了明确更改jar的命名外,您应该为构建设置正确的项目名称。目前在build.gradle
文件中无法做到这一点。相反,您必须在根目录中创建settings.gradle
文件。这个settings.gradle
文件应包含以下内容:
rootProject.name = 'project1'
答案 2 :(得分:11)
如果你有一些submobule,你可以在build.gradle中使用(对于jar)
configurations {
jar.archiveName = 'submodule-jar.jar'
}
答案 3 :(得分:10)
我最近迁移到gradle 4.6(来自3. something)和
jar {
baseName = 'myjarname'
}
停止工作,gradle从文件夹名称命名我的jar。
所以我转而使用了archivesBaseName = 'myjarname'
。
也许这也有助于其他人。
答案 4 :(得分:5)
在Kotlin DSL中,您还可以使用:
tasks.jar {
archiveFileName.set("app.jar")
}
通过Spring boot和Kotlin DSL,您可以使用:
tasks {
bootJar {
archiveFileName.set("app.jar")
}
}
答案 5 :(得分:1)
当前使用Kotlin作为Gradle DSL。以下语句对我有用:
tasks.withType<AbstractArchiveTask> {
setProperty("archiveFileName", "hello-world.jar")
}
它也可以在Spring Boot可执行jar上使用。
如果要保留版本号:
tasks.withType<AbstractArchiveTask> {
setProperty("archiveBaseName", "hello-world")
}
它将产生类似hello-world-1.2.3.jar
答案 6 :(得分:1)
如果您使用较新的 Gradle 版本,SELECT c.`id` as `customer_id`, c.`name` as `customer_name`,
i.`name` as `item_name`, i.`type` as `item_type`
FROM `customers` c INNER JOIN `items` i ON c.`item_name` = i.`name`
、baseName
现在将被弃用。相反,使用类似
archiveName
答案 7 :(得分:0)
如果要在jar文件名后附加一个日期,可以这样:
jar {
baseName +='_' +new java.text.SimpleDateFormat("dd_MM_yyyy").format(new java.util.Date())
println(baseName) // just to verify
结果为<basename>_07_05_2020.jar
答案 8 :(得分:0)
您必须在build.gradle文件中删除'version'标签!