我使用了一个 build.gradle 文件,它需要引用一些在公共存储库和内部存储库中都不可用的 jar 文件。
因此,我将 jar 文件放入我的 Eclipse 项目下方的 lib 目录中:
dependencies {
...
compile files('lib/*.jar')
}
只要我从 Eclipse 中运行或导出我的程序,它就可以正常工作。但是当我尝试gradle build
gradle 失败并出现此错误时:
无法规范文件“C:\Workspaces\MyProject\project\lib\*.jar”的路径。
我将路径更改为lib\*.jar
,添加了前导./
,删除了\*.jar
但无济于事。
当我compile files
从依赖项中删除该行并将其添加到存储库时
repositories {
...
flatDir { dirs './lib' }
}
编译器抱怨error: cannot find symbol
,所有这些符号都在从 lib 目录引用的 jar 中。当我运行时,gradle --debug
我可以从日志中看到 flatDir 引用的目录正在被搜索:
10:02:20.587 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ResourceVersionLister] using org.gradle.internal.resource.transport.file.FileResourceConnector@48499739 to list all in /C:/...../lib/
10:02:20.592 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ResourceVersionLister] found 7 urls
7 是 lib 目录中的文件数。
为什么这在 Eclipse(带有 gradle 工具的 STS 3.7)中而不是在命令行中有效?我尝试了 gradle 2.2.1 和 2.5。