提问者:小点点

非常简单的GradleJava项目,找不到依赖


我正在构建一个非常基本的java项目来学习gradle,我在添加依赖项时遇到了麻烦

这是我的build. gradle:

apply plugin: 'java'
apply plugin: 'idea'


repositories {

  // JCenter (https://bintray.com/bintray/jcenter)
  jcenter()

  // Maven central repo
  mavenCentral()

}


dependencies {

  // Apache Commons Math 3.6.1
  compile 'org.apache.commons:commons-math3:3.6.1'

  // Google Guice 
  compile 'com.google.inject:guice:4.1.0'

}

这是我的文件结构

project
├── build
├── build.gradle
└── src
    ├── main
    │   ├── java
    |   |   |__Main.java
    │   └── resources
    └── test
        ├── java
        └── resources

在Main.java我遵循了一个简单的公地数学例子:

import org.apache.commons.math3.stat;

public class Main {
    public static void main(String[] args) throws Exception {
        double[] values = new double[] {65, 51, 16, 11, 6519,
                                        191 , 0, 98, 19854, 1, 32};

        DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();

        for (double v : values) {
            descriptiveStatistics.addValue(v);
        }
        double mean = descriptiveStatistics.getMean();
        double median = descriptiveStatistics.getPercentile(50);
        double standardDeviation = descriptiveStatistics.getStandardDeviation();

        System.out.println(mean + "\n" + median + "\n" + standardDeviation);
    }
}

但是,当我尝试构建我的项目时,我得到了找不到符号错误。

Main.java:1: error: cannot find symbol
import org.apache.commons.math3.stat;
                           ^
    symbol:   class stat

我不确定这是Gradle的问题还是我如何构建我的项目(当运行“gradle依赖项”时,一切似乎都很好)。

如何运行这个简单的示例?


共1个答案

匿名用户

问题是代码文件顶部的这一行:

import org.apache.commons.math3.stat;

由于stat是一个包而不是一个类,编译器不确定该导入试图做什么,因此它出错了。

相反,尝试拉入您需要的类。在这种情况下,您看起来想要运算符统计类:

import org.apache.commons.math3.stat.descriptive.DescriptiveStatist‌​ics;

或者如果使用了大部分包,则导入所有内容

import org.apache.commons.math3.stat.descriptive.*;