我正在寻找一种解决方案来排除某些标记有特定注释的文件,这些文件将打包在jar中(可以编译但不能创建jar的一部分)。
我尝试了以下步骤
任何指针都会有所帮助。
答案 0 :(得分:0)
我能够实现这么长时间,但忘了我在这里发布了这个问题。
我以前的解决方案实际上非常简单 -
使用gradle jar
任务 -
jar {
excludes = excludedFiles(sourceSets.main.allSource.files)
baseName = artifactName
version = artifactVersion
}
定义excludedFiles
函数以查找提供的源目录中的文件 -
def excludedFiles(Collection<File> files) {
List<String> classes = new ArrayList<>()
files.each { file ->
if (file.isDirectory()) {
excludedFiles(Arrays.asList(file.listFiles()))
}
else {
if (file.text.contains("@YourAnnotation") && file.text.contains("import foo.bar.YourAnnotation")) {
classes += getClassName(file.absolutePath)
}
}
}
return classes
}
希望这有帮助。