在JavaGradle项目中,我可以从主类引用测试类吗?

在JavaGradle项目中,我可以从主类引用测试类吗?,java,gradle,Java,Gradle,我有一个带有src/main/java/coolpackage/currentClass.java和src/test/java/coolpackage/desiredClass.java的gradle项目。是否可以将desiredClass导入currentClass “import coolpackage.”会让它认为我指的是开发包而不是测试包,它不会像“test”一样识别上面的包。对于标准的gradle项目设置,这是不可能的,因为gradle不会在src/test下编译任何用于生产代码的东西

我有一个带有src/main/java/coolpackage/currentClass.java和src/test/java/coolpackage/desiredClass.java的gradle项目。是否可以将desiredClass导入currentClass


“import coolpackage.”会让它认为我指的是开发包而不是测试包,它不会像“test”一样识别上面的包。

对于标准的gradle项目设置,这是不可能的,因为gradle不会在src/test下编译任何用于生产代码的东西。这可以通过在build.gradle中编辑源集来实现,如下所示:

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
            srcDir 'src/test/java'
        }
    }
}

话虽如此,我想问你为什么要这么做。测试类不应该在生产代码中使用,因此这似乎表明我有问题

如果类在同一个包中,则无需导入。这与包无关:gradle故意不使用生产类编译测试类,因为您不想在生产代码中使用测试类。生产代码应该与测试类和库完全隔离,gradle确保这一点。因此,测试类显然可以访问生产类和库,但反之则是错误的。