Gradle 使用 Buildship 的 Eclipse 中的项目依赖项
Gradle Project Dependencies in Eclipse with Buildship
我将 Eclipse Mars.2 (4.5.2) 与 Buildship 1.0.14 一起使用。 Gradle版本是2.12。
我将 gradle 项目导入到 Eclipse 中。
导入前不存在 .project
或 .classpath
文件。所有模块导入成功。但是几乎每个具有 java 代码的项目都缺少依赖项并显示红色“X”。
如果打开 java 文件出错,您可以看到 Eclipse 无法解析导入。但是如果你按名称打开导入的class,它可以在其他模块的依赖项中找到它。
Gradle -> 刷新项目没有帮助。
在根build.gradle
中以这种方式声明的必要依赖项:
ext.library = [
swagger: [
[ group: "io.swagger", name: "swagger-annotations", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-core", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-jaxrs", version: "1.5.3" ]
]
]
在模块中我这样声明:
dependencies {
providedCompile library.swagger
}
当您从命令行甚至从 Eclipse 执行 gradle build
时,构建成功。
重现此问题的小项目示例可以在github找到(感谢RaGe的参与)。
你能帮我用 Eclipse 解决这个问题吗?
参考您提供的代码示例回答here。
您没有使用 war 插件,而是声明了您自己的名为 providedCompile
的自定义配置。 Gradle 推而广之,buildship/eclipse 不知道 providedCompile
是什么意思。因此,您在 providedCompile
中列出的依赖项未用作编译时依赖项。
因此,您的导入语句成为编译时错误 - 在 Eclipse 中和来自 gradle 命令行的 gradle build
您可以通过以下操作将 providedCompile
添加到编译 class 路径:
sourceSets.main.compileClasspath += [configurations.providedCompile]
如果你的项目也添加了eclipse插件,你可以修改eclipse编译class路径为:
eclipse {
classpath {
plusConfigurations += [configurations.providedCompile]
}
}
官方错误跟踪器上的人告诉我 gradle 2.12 现在可以使用 compileOnly
范围,默认情况下它也连接到 Eclipse。
我将 Eclipse Mars.2 (4.5.2) 与 Buildship 1.0.14 一起使用。 Gradle版本是2.12。
我将 gradle 项目导入到 Eclipse 中。
导入前不存在 .project
或 .classpath
文件。所有模块导入成功。但是几乎每个具有 java 代码的项目都缺少依赖项并显示红色“X”。
如果打开 java 文件出错,您可以看到 Eclipse 无法解析导入。但是如果你按名称打开导入的class,它可以在其他模块的依赖项中找到它。
Gradle -> 刷新项目没有帮助。
在根build.gradle
中以这种方式声明的必要依赖项:
ext.library = [
swagger: [
[ group: "io.swagger", name: "swagger-annotations", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-core", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-jaxrs", version: "1.5.3" ]
]
]
在模块中我这样声明:
dependencies {
providedCompile library.swagger
}
当您从命令行甚至从 Eclipse 执行 gradle build
时,构建成功。
重现此问题的小项目示例可以在github找到(感谢RaGe的参与)。
你能帮我用 Eclipse 解决这个问题吗?
参考您提供的代码示例回答here。
您没有使用 war 插件,而是声明了您自己的名为 providedCompile
的自定义配置。 Gradle 推而广之,buildship/eclipse 不知道 providedCompile
是什么意思。因此,您在 providedCompile
中列出的依赖项未用作编译时依赖项。
因此,您的导入语句成为编译时错误 - 在 Eclipse 中和来自 gradle 命令行的 gradle build
您可以通过以下操作将 providedCompile
添加到编译 class 路径:
sourceSets.main.compileClasspath += [configurations.providedCompile]
如果你的项目也添加了eclipse插件,你可以修改eclipse编译class路径为:
eclipse {
classpath {
plusConfigurations += [configurations.providedCompile]
}
}
官方错误跟踪器上的人告诉我 gradle 2.12 现在可以使用 compileOnly
范围,默认情况下它也连接到 Eclipse。