Gradle尝试在依赖项代码中查找错误
我尝试迁移到gradle我的项目,project-addon for webapp,所以我需要导入十几个这个webapp的lib进行开发。一些JAR包含冲突:相同的包、相同的类名、不同的类内容。重要的是,我没有在我的项目中显式地使用这些类 所以,我现在有了配置Gradle尝试在依赖项代码中查找错误,gradle,Gradle,我尝试迁移到gradle我的项目,project-addon for webapp,所以我需要导入十几个这个webapp的lib进行开发。一些JAR包含冲突:相同的包、相同的类名、不同的类内容。重要的是,我没有在我的项目中显式地使用这些类 所以,我现在有了配置 ... def LIB_DIR = 'E:\\work\\source\\lib\\' def wnc101M040 = fileTree(dir: LIB_DIR + 'Windchill-10.1.M040/srclib', incl
...
def LIB_DIR = 'E:\\work\\source\\lib\\'
def wnc101M040 = fileTree(dir: LIB_DIR + 'Windchill-10.1.M040/srclib', include: '**/*.jar')
...
dependencies {
compile(wnc101M040) {transitive = false}
...
}
当我试图编译代码时。Gradle trows错误:
com\ptc\cat\gxt\client\widget\TabPanelWidget.java(com\ptc\cat\gxt\client\widget:TabPanelWidget.java):112: cannot find symbol
symbol : method hasBeenSelected()
location: class com.extjs.gxt.ui.client.widget.TabItem
if(!((TabItem) item).hasBeenSelected()) {
^
com\ptc\cat\gxt\client\widget\TabPanelWidget.java(com\ptc\cat\gxt\client\widget:TabPanelWidget.java):113: cannot find symbol
symbol : method setHasBeenSelected(boolean)
location: class com.extjs.gxt.ui.client.widget.TabItem
((TabItem)item).setHasBeenSelected(true);
^
com\ptc\cat\gxt\client\widget\TabPanelWidget.java(com\ptc\cat\gxt\client\widget:TabPanelWidget.java):164: cannot find symbol
symbol : method blockComponent(com.ptc.cat.gxt.client.widget.TabPanelWidget)
location: class com.extjs.gxt.ui.client.util.Util
Util.blockComponent(this);
^
那么,为什么gradle在我的外部LIB中检查类呢?如何禁用此功能?提前谢谢 默认情况下,javac会尝试在jar中编译源代码。要防止这种情况,您必须设置正确的编译器选项。如果我没记错的话,它是:
tasks.withType(JavaCompile) {
options.compilerArgs = ["-sourcepath", ""]
}
或者,[-implicit:none]也可以工作。您是说TabPanelWidget是外部代码吗?transitive=false对文件依赖项无效。Yep。有些库jar包含编译类,有些包含源代码。我的所有类都在其他包中。抱歉,但这没有效果。实际上它是options.compilerArgs。您应该得到一个警告,说明compilerArgs不存在。