我需要com.sun.tools jar作为编译依赖项,所以我只是将它复制到我的Intellij项目中的libs文件夹中。但是,我试图使用gradle。我只需要它作为我的一个模块的依赖项。我该怎么做呢。我目前在我的模块jar任务中有这个:
jar {
from('build/classes/main/')
from('libs/tools.jar')
manifest {
attributes 'Manifest-Version': '1.0',
'Class-Path': configurations.runtime.files.collect {"../lib/${it.name}" },
}
我也在我的模块"依赖"中尝试了这个。封闭:
compile fileTree(dir: 'lib', include: '*.jar')
我也尝试将jar放在我的整个项目类路径中,但它仍然没有编译:
classpath ":tools"
也许它是正确的,但我的IDE没有正确刷新?我已经有了插件
apply plugin: 'idea'
它一直在完美地工作,直到我尝试这样做。
编辑:它是一个注释处理器,所以我试图将它包含在我的模块jar构建中,而不是让其他模块依赖它。有没有比复制jar更好的方法?答案 0 :(得分:3)
有一种方法可以表达对tools.jar的依赖,而无需复制jar:
dependencies {
compile files("${System.getProperty('java.home')}/../lib/tools.jar")
}
Intellij 2017.1能够识别并将其作为模块依赖项导入而不会出现问题。
它仅在JDK上运行时才有效,因为裸JRE没有包含tools.jar。