【发布时间】:2022-01-20 10:24:22
【问题描述】:
我有以下文件夹结构:
-bin
-build/build.gradle(gradle 脚本)
-lib/[*.jar](项目正在使用的库)
-src/folder/folder/[*.java](项目源代码)
build.gradle 脚本的以下内容:
plugins {
id 'java'
id 'groovy'
}
buildDir = new File('../bin')
sourceCompatibility = JavaVersion.VERSION_1_8
sourceSets {
main {
java {
allJava.srcDirs = [ '../src/folder/folder/ ']
compileClasspath = fileTree('../bin')
}
}
}
repositories {
flatDir {
dirs '../lib'
}
}
dependencies {
implementation fileTree('../lib')
}
tasks.register('javac', JavaCompile) {
println 'Call javac'
source.forEach { e -> println e}
classpath = sourceSets.main.compileClasspath
destinationDirectory = file('../bin')
source sourceSets.main.allJava.srcDirs
includes.add('*.java')
sourceCompatibility = JavaVersion.VERSION_1_8
}
运行gradle javac 时出现错误: error: cannot find symbol import com...
文件清楚地写着:
dependencies {
.
.
.
//putting all jars from 'libs' onto compile classpath
implementation fileTree('libs')
}
我正在使用 Gradle 7.3.1
【问题讨论】:
-
安全地假设您的
folder/folder实际上是与您的import语句匹配的com/.../?您从哪个目录运行 Gradle?它是否解释相对于当前目录或build.gradle的相对路径?如果您从顶级目录运行,请尝试从implementation fileTree('../lib')等路径中删除../。 -
是的,这些路径仅作为示例。我尝试了绝对路径和相对路径,但没有成功......