我需要创建Gradle任务,它可以在Gradle构建之前替换.java文件。分级在.war文件中构建包应用程序。我需要在构建后替换字节码。我试过sourceSets Gradle任务,但它只能排除文件。
sourceSets {
main {
java {
exclude 'com/myapp/example/resource/impl/ResourceBundleImpl.java'
}
}
}
但我需要在同一地方也包括文件。我怎么能和Gradle在一起?
The directory to file that I need to exclude: com/myapp/example/resource/impl/ResourceBundleImpl.java
The directory to file that I need to include: src/main/webapp/WEB-INF/my/ResourceBundleImpl.java
task prepareSources(type: Copy) {
from('src/main/webapp/WEB-INF/my')
into('build/classes/java/main/com/myapp/example/resource/impl')com/myapp/example
}
// Prepare sources, before compile
compileJava {
dependsOn prepareSources
}
sourceSets {
main {
java {
srcDir "$projectDir"
exclude 'com/medtronic/diabetes/carelink/rbps/resource/impl/ResourceBundleImpl.java'
include 'src/main/webapp/WEB-INF/my/ResourceBundleImpl.java'
}
}
我将需要替换的类放在一起,并为其中一个类添加后缀,并在编译期间替换这个后缀:
sourceSets {
main {
java {
srcDirs = ["$buildDir\\generated-src"]
}
}
}
task copySourceSet(type: Copy) {
println 'Change java class in patient-svc-war'
from "$rootDir\\patient-svc-war\\src\\main\\java"
into "$buildDir\\generated-src"
from file("$rootDir\\patient-svc-war\\**_suffix.java")
into "$buildDir\\generated-src"
rename { String fileName ->
fileName.replace("_suffix", "")
}
filter { line -> line.replaceAll('_suffix', '')}
}
compileJava.source "$buildDir\\generated-src"
compileJava {
dependsOn copySourceSet
}
compileJava.doLast {
delete "$buildDir\\generated-src"
}
我有一个jar,build-plugins.jar和一个gradle插件,它是用build.gradle中的这个插件构建的: 这将构建build-plugins.jar。并且使用插件的项目按文件引用插件jar 问题是当我运行第二个项目的任何任务时,我得到的是“class proxy created for class XYZ”,根本原因是四个依赖项(joda-time、commons-io、str
我有一个非常简单的构建。gradle文件包含以下内容: 我想要的是在java编译开始之前运行generateSources任务。我找到了几种解决方法,比如compileJava。dependsOn(“generateSources”),但不幸的是,它们给出了一个错误: 我不认识Gradle,也不明白这个代码出了什么问题。所以我想知道如何修复这个错误。
我试图在一个用Java编写的自定义Gradle插件中配置测试任务。 在中应用我需要的插件: 我可以像那样通过命令行成功地编译代码 但是,IntelliJ在以下代码中抱怨: 道: 分级版本:6.7.1 Intellij:2020.2.3
我有一个通过JAXB完成从XSD到java代码生成的分级任务。但是代码生成需要一个手工的注释类(写在Kotlin上),放在项目的源目录中。在代码生成任务之前,我如何编译并放入类路径中一个这个文件? 在gradle项目中我有这样的台词: 所以在我作为param configurations.jaxb.aspath传递的代码生成任务中,我建议必须在这个类路径中包含已编译的类
我下载了一个名为PDFCLOWN的开源项目。运行它的样本,它似乎运行得很好。 谢谢! 只需提及一下,这个项目使用ant,这意味着编译过程不是由用户直接运行的,而是使用build.xml文件运行的。
问题内容: 好吧,标题是不言而喻的。我在编译有很多注释行的项目时想知道这一点。这有点愚蠢,因为jar文件不会增加太多(某些字节),但是我很好奇这是否会影响带有大量代码和注释的程序。 谢谢 问题答案: 它不会影响执行或性能(除非您注释了错误的语句:-) 但这 绝对 会影响可读性。没有理由(在生产中)使用大量注释掉的代码,版本控制是必经之路 另请参阅 此问题。 问题结束。