Intellij Gradle软件包名称不正确错误

时间:2018-08-06 01:03:30

标签: gradle intellij-idea build.gradle intellij-15

我刚刚在IntelliJ中使用以下文件打开了这个(https://github.com/codetojoy/easter_eggs_for_gradle/tree/master/egg_StackOverflow_51685286)项目:

src/net/codetojoy/Foo.java
src/net/codetojoy/service/FooService.java
src/net/codetojoy/tests/FooServiceTestCase.java

build.gradle包含sourceSet的配置,如下所示:

sourceSets {
    main {
        java {
            srcDir 'src'
            exclude 'net/codetojoy/tests/*'
        }
    }
}

sourceSets.test.java.srcDir 'src/net/codetojoy/tests'

FooServiceTestCase.java文件上,我在包装行上看到一条错误,提示Package name 'net.codetojoy.tests' does not correspond to the file path

我认为这是由于定制的源和测试集。但我不确定如何解决。...

请帮助

1 个答案:

答案 0 :(得分:0)

test源集定义必须更像main

sourceSets {
  main {
    java {
        srcDir 'src'
        exclude 'net/codetojoy/tests/*'
    }
  }
  test {
    java {
      srcDir 'src'
      include 'net/codetojoy/tests/*
    }
}

上一个答案在命令行中起作用而不是在IDE中起作用的原因是对于Java编译器而言,源文件的位置无关紧要。 package指令用于正确放置生成的class文件,但是源文件不必位于匹配的目录结构中。但是通常IDE会执行此检查。

相关问题