Gradle无法使用JavaFX插件从src / test访问src / main模块中定义的类

jeffrey.dm

我试图允许我的测试类访问主类(在标准gradle设置中)。直到我将主类放在模块中(对于JavaFX)为止,它一直运行良好,这时所有测试都停止了工作。主代码运行良好。

如果我正确理解,根据此gradle文档,什么也不做应该可以正常运行测试,但是出现错误:

org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Could not complete execution for Gradle Test Executor 1.
    ...
Caused by: java.lang.IllegalAccessError: class org.junit.platform.launcher.core.LauncherFactory (in unnamed module @0x50650eec) cannot access class org.junit.platform.commons.util.Preconditions (in module org.junit.platform.commons) because module org.junit.platform.commons does not export org.junit.platform.commons.util to unnamed module @0x50650eec

如果我使用intellij配置或运行,则会发生这种情况./gradlew test

因此,我尝试通过修补module-info来解决此问题,但随后出现了数百个类似这样的错误:

error: cannot find symbol
import snake.Snake
            ^
  symbol:   class Snake
  location: package snake

哪个是IntelliJ解释的Package 'snake' is declared in module 'snakegame', which does not export it to module 'snakegame'我猜它是指在src / main / java中定义的原始module-info.java和在src / test / java中的辅助module-info.java。

Gradle文档中,有一个代码片段可用于在build.gradle中自己添加patch参数,但这只会导致以下错误:

> java.lang.IllegalArgumentException: error: --patch-module specified more than once for module snakegame

实际执行的命令如下所示:

compiler args for task compileTestJava: [--patch-module, snakegame=/project/path/snake/build/classes/java/main, --module-path, ... , --add-modules, org.junit.jupiter.api, --add-reads, snakegame=org.junit.jupiter.api, --patch-module, snakegame=/project/path/snake/src/test/java]

因此,它修补了两个我不理解的模块。对于我来说,这并不重要,我只需要这些类是可运行的并可以访问主类即可。

更新:

因此,我重新创建了该项目,以尝试创建一个最小的可复制示例,并一次添加一个元素,直到我添加了gradle JavaFX插件,该问题才出现,此时它停止了工作。

所以,我开始使用默认的结构,简单地创建了一个称为包exampleExample.class,并且在测试中创建的相同的封装,具有一个测试类Example_Test.class与创建一个实施例对象的一个试验。然后,我在main中添加了一个空的module-info。原始build.gradle:

plugins {
    id 'java'
}
// default stuff

因此,此时一切正常。然后我将其更改为:

plugins {
    id 'java'
    id 'org.openjfx.javafxplugin' version '0.0.9'
}

一切都停止了

jeffrey.dm

这是一个奇怪的问题,许多解决方案都行不通。

有用的链接:

我的首选解决方案是使用测试module-info.java或module-info.test,但是我无法使其正常工作。我最终只是忽略了测试模块,这是目前可以通过的解决方法,因为我目前仅进行单元测试。要在测试期间忽略模块,请将其添加到build.gradle中:

plugins {
    id 'java'
    id 'org.openjfx.javafxplugin' version '0.0.9'
    // other plugins
}

// other stuff

test {
    useJUnitPlatform()

    moduleOptions {
        runOnClasspath = true
    }
}

设置moduleOptions { runOnClasspath = true }test

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gradle无法使用JavaFX插件从src / test访问src / main模块中定义的类

来自分类Dev

无法将src / main / java下的Java类导入eclipse中的src / test / java

来自分类Dev

使用gradle antlr插件在Intellij中的generate-src / antlr中复制dagger2

来自分类Dev

无法通过测试用例从src / main / resources访问文件

来自分类Dev

sbt从src / main / scala而不是src / test / scala运行测试?

来自分类Dev

在模块中定义类访问器的简写

来自分类Dev

Mule-在Studio和Standalone中运行时,如何访问Java类的src / main / resources中的文件?

来自分类Dev

库模块中的Android Studio Gradle访问模块类

来自分类Dev

在嵌入对象HTML中访问CURRENT src

来自分类Dev

使用ng-src时如何在Angular指令中访问src属性

来自分类Dev

来自src / test的Jar文件中的主类

来自分类Dev

无法从Java类访问域属性(在src文件夹中)

来自分类Dev

src / main / resources中的文件不在类路径中

来自分类Dev

如何在gradle的测试源集中包含所有src / test / resources / **和src / main / java / ** / *。html?

来自分类Dev

使用访问修饰符(如python模块中的下划线)控制应如何访问定义的变量或模块,函数,导入的类?

来自分类Dev

Docker插件:java.io.FileNotFoundException:/ src / main / docker / Dockerfile gradle-docker失败

来自分类Dev

将WebContent移至src / main / webapp后无法访问主页

来自分类Dev

来自Main的Controller类中的JavaFX访问函数

来自分类Dev

为什么无法在模块中访问父项目类

来自分类Dev

如何访问jar中的静态资源(与src / main / resources文件夹相对应)?

来自分类Dev

如何访问jar中的静态资源(与src / main / resources文件夹相对应)?

来自分类Dev

当模块中的src时,Gradle“ compile fileTree”不起作用

来自分类Dev

当模块中的src时,Gradle“ compile fileTree”不起作用

来自分类Dev

Scala“无法在Main类中访问构造器秒表”

来自分类Dev

在硒中如何访问仅具有src属性的iframe?

来自分类Dev

在页面类中定义的Webelement在Test类中不可访问

来自分类Dev

找不到符号:使用`javac`命令在公共类java上实现的默认访问接口(在不同的src文件中声明)

来自分类Dev

不能始终使用带有Eclipse的maven pom创建src / test / java模块jar

来自分类Dev

为什么`Regex`在src / test和src / androidTest中具有不同的行为?

Related 相关文章

  1. 1

    Gradle无法使用JavaFX插件从src / test访问src / main模块中定义的类

  2. 2

    无法将src / main / java下的Java类导入eclipse中的src / test / java

  3. 3

    使用gradle antlr插件在Intellij中的generate-src / antlr中复制dagger2

  4. 4

    无法通过测试用例从src / main / resources访问文件

  5. 5

    sbt从src / main / scala而不是src / test / scala运行测试?

  6. 6

    在模块中定义类访问器的简写

  7. 7

    Mule-在Studio和Standalone中运行时,如何访问Java类的src / main / resources中的文件?

  8. 8

    库模块中的Android Studio Gradle访问模块类

  9. 9

    在嵌入对象HTML中访问CURRENT src

  10. 10

    使用ng-src时如何在Angular指令中访问src属性

  11. 11

    来自src / test的Jar文件中的主类

  12. 12

    无法从Java类访问域属性(在src文件夹中)

  13. 13

    src / main / resources中的文件不在类路径中

  14. 14

    如何在gradle的测试源集中包含所有src / test / resources / **和src / main / java / ** / *。html?

  15. 15

    使用访问修饰符(如python模块中的下划线)控制应如何访问定义的变量或模块,函数,导入的类?

  16. 16

    Docker插件:java.io.FileNotFoundException:/ src / main / docker / Dockerfile gradle-docker失败

  17. 17

    将WebContent移至src / main / webapp后无法访问主页

  18. 18

    来自Main的Controller类中的JavaFX访问函数

  19. 19

    为什么无法在模块中访问父项目类

  20. 20

    如何访问jar中的静态资源(与src / main / resources文件夹相对应)?

  21. 21

    如何访问jar中的静态资源(与src / main / resources文件夹相对应)?

  22. 22

    当模块中的src时,Gradle“ compile fileTree”不起作用

  23. 23

    当模块中的src时,Gradle“ compile fileTree”不起作用

  24. 24

    Scala“无法在Main类中访问构造器秒表”

  25. 25

    在硒中如何访问仅具有src属性的iframe?

  26. 26

    在页面类中定义的Webelement在Test类中不可访问

  27. 27

    找不到符号:使用`javac`命令在公共类java上实现的默认访问接口(在不同的src文件中声明)

  28. 28

    不能始终使用带有Eclipse的maven pom创建src / test / java模块jar

  29. 29

    为什么`Regex`在src / test和src / androidTest中具有不同的行为?

热门标签

归档