我有一些代码,我不希望包含在jar文件基于一个条件。
我的构建脚本看起来像
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.0.RELEASE'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
现在,当我运行脚本gradlew清洁构建bootJar-P环境=prod
时,除了危险的java文件,所有文件的绝对路径都被打印出来,但它们仍然包含在jar中。
如果我删除启动插件并运行jar
任务,危险的类文件仍然包含在jar中。
gradlew干净的构建jar-环境=prod
plugins {
id 'java'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
如果我在jar任务中添加一个exclude
子句,则不会打印危险文件,它们也不会包含在jar中。
gradlew干净的构建jar-环境=prod
plugins {
id 'java'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
jar {
exclude '**/dangerous/**'
}
如果我启用启动插件,并使用bootJar任务(它继承自Jar任务)(gradlew clean build bootJar-Penvironment=prod
),我看不到打印的危险文件,但这些文件仍然包含在Jar中。
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.0.RELEASE'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
bootJar {
exclude '**/dangerous/**'
}
如何使用SpringBootGradle插件和bootJar任务有条件地排除java文件?
制作你自己的罐子,学习gradle,不要使用那么多插件。和这个问题已经正确回答了。我上周读到了,你一定是删除了它并复制了代码。动作不错。
我缩小了问题的范围。我没有把上面所有的插件都放进去,因为我认为唯一重要的是java和Spring引导。然而,我的实际代码也使用了原型插件
。如果我删除配置属性GeneratedFilesBaseDir
,那么它成功地排除了危险的目录。
然而,这开启了一个新的问题,到底发生了什么?
我指定了generated files base dir属性,以便在源代码中引用生成的类,但我认为可能需要为proto创建一个不同的项目,并将该项目添加为对主模块的引用。
针对这个问题,为原型文件创建一个单独的项目并将其作为一个项目引用似乎是一个可行的解决方案。
我在使用2.0时也遇到了同样的问题。1.释放。我使用bootJar选项创建了jar。在其中添加exclude,其中包含要从可执行jar中排除的文件模式。这在Spring2.0中运行良好。4.发布版本。
bootJar {
exclude("**/dangerous/*")
}
我正在使用Eclipse Buildship插件在我的项目上执行Gradle任务。知道如何在运行构建任务时排除测试任务吗?在Gradle STS插件中,我曾经将程序参数更新为'-x test',它跳过了测试任务。当我在Buildship上尝试同样的方法时,得到了下面的错误。
我有什么? 现在我想知道在任务执行之前是否可以使用clean task(常见的构建任务)来清理构建目录。 这背后是有原因的,我想确保每次gradle都应该编译java文件,并且所有.class文件都应该被刷新(这是一些要求) 我试过什么? 我想知道什么? 有没有什么方法可以避免编写包装器任务,并做一些梯度魔术来达到要求?
Java 插件引入了许多任务到项目当中, 具体如下表所示 表22.1 java 插件-任务 任务名 依赖 类型 描述 compileJava 所有产生编译 classpath 的任务,包括编译配置项目的所依赖的 jar 文件 JavaCompile 使用 javac 命令编译产生 java源文件 processResources - Copy 复制生产资源到生产 class 文件目录 classe
那么如何防止插件jar进入war文件呢?多谢了。
我的枚举: 对于所有查询,当时,有可能说永远不返回Entity
我正在从事一个Java web项目,该项目使用Liquibase groovy DSL管理数据库更改。就本主题而言,它可以是使用将文件作为源文件。这项工程是用格雷德尔建造的。在我的一个模块()的文件夹下,我有groovy文件(等)。这些文件应该在运行时由liquibase jar加载。 现在,当我尝试在IntelliJ中创建项目时,它会给出以下错误消息: Groovyc:无法编译Groovy文件: