Java &引用;“梯度初始”;(v4.0)生成build.gradle can';找不到包裹

Java &引用;“梯度初始”;(v4.0)生成build.gradle can';找不到包裹,java,gradle,Java,Gradle,我使用“gradleinit”将一个正在工作的Maven项目转换为Gradle。我得到的包不存在错误。我不确定如何调试这个错误 $ ./gradlew build Starting a Gradle Daemon (subsequent builds will be faster) > Task :drill-logical:compileJava warning: [options] bootstrap class path not set in conjunction with -s

我使用“gradleinit”将一个正在工作的Maven项目转换为Gradle。我得到的包不存在错误。我不确定如何调试这个错误

$ ./gradlew build
Starting a Gradle Daemon (subsequent builds will be faster)

> Task :drill-logical:compileJava
warning: [options] bootstrap class path not set in conjunction with -source 1.7
/home/drill/logical/src/main/java/org/apache/drill/common/expression/LogicalExpression.java:26: error: package org.apache.drill.common.expression.parser does not exist
import org.apache.drill.common.expression.parser.ExprLexer;
                                                ^
/home/drill/logical/src/main/java/org/apache/drill/common/expression/LogicalExpression.java:27: error: package org.apache.drill.common.expression.parser does not exist
import org.apache.drill.common.expression.parser.ExprParser;
                                                ^
/home/drill/logical/src/main/java/org/apache/drill/common/expression/LogicalExpression.java:28: error: package org.apache.drill.common.expression.parser.ExprParser does not exist
import org.apache.drill.common.expression.parser.ExprParser.parse_return;
                                                           ^
/home/drill/logical/src/main/java/org/apache/drill/common/expression/SchemaPath.java:29: error: package org.apache.drill.common.expression.parser does not exist
import org.apache.drill.common.expression.parser.ExprLexer;
                                                ^
/home/drill/logical/src/main/java/org/apache/drill/common/expression/SchemaPath.java:30: error: package org.apache.drill.common.expression.parser does not exist
import org.apache.drill.common.expression.parser.ExprParser;
                                                ^
/home/drill/logical/src/main/java/org/apache/drill/common/expression/SchemaPath.java:31: error: package org.apache.drill.common.expression.parser.ExprParser does not exist
import org.apache.drill.common.expression.parser.ExprParser.parse_return;
                                                           ^
drill/logical目录中的build.gradle:

 $ cat build.gradle

 description = 'Logical Plan, Base expressions'
 dependencies {
     compile project(':drill-protocol')
     compile project(':drill-common')
     compile(group: 'org.apache.calcite', name: 'calcite-core', version:'1.4.0-drill-r21') {
         exclude(module: 'jgrapht-jdk1.5')
         exclude(module: 'commons-logging')
         exclude(module: 'jackson-annotations')
         exclude(module: 'jackson-core')
         exclude(module: 'jackson-databind')
     }

     compile group: 'com.typesafe', name: 'config', version:'1.0.0'
     compile group: 'org.apache.commons', name: 'commons-lang3', version:'3.1'
     compile group: 'org.msgpack', name: 'msgpack', version:'0.6.6'
     compile group: 'org.reflections', name: 'reflections', version:'0.9.8'
     compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version:'2.7.1'
     compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version:'2.7.1'
     compile group: 'com.codahale.metrics', name: 'metrics-core', version:'3.0.1'
     compile group: 'com.codahale.metrics', name: 'metrics-servlets', version:'3.0.1'
     compile group: 'org.antlr', name: 'antlr-runtime', version:'3.4'
     compile group: 'joda-time', name: 'joda-time', version:'2.9'

     testCompile project(':drill-common')
 }

 task packageTests(type: Jar) {
     from sourceSets.test.output
     classifier = 'tests'
 }
我是否查看了错误的build.gradle文件?最上面的build.gradle列出了与pom.xml一一匹配的依赖项和存储库


我应该找什么

您缺少的类是由ANTLR生成的。您的repo中有一个ANTLR语法文件,从中生成这些源。与Maven构建中使用的大多数插件一样,这不是自动传输到Gradle,而是必须手动完成。使用内置的Gradle ANTLR插件从语法文件中生成源代码。

添加ANTLR插件、“generateGrammarSource”并将java编译的依赖项设置为generateGrammarSource并没有改变错误。我认为除了应用插件之外,您不需要任何东西。我认为其他一切,如依赖关系等,都应该自动设置。如果仍然不起作用,请分别提供当前构建脚本和执行输出以及
-i
-d
,或者简单地告诉我在哪里可以查看您当前的钻取状态。使用-i选项,我看到了问题。虽然我已经设置了源目录“logical/src/main/antl3”,但Gradle坚持使用“logical/src/main/antlr”。从“antlr3”到“antlr”的符号链接修复了这个问题。您是如何设置源目录的?在“task gerateGrammarSource”中,我将antlr.srcdir设置为$projectDir/src/main/antlr3/org/apache/drill/common/expression/parser,但在构建过程中,gradle坚持使用$projectDir/src/main/antlr/org/apache/drill/common/expression/parser。从antlr3到antlr的符号链接让我越过了那个点。