我正在学习JavaFx并尝试制作一个可重用的组件。该项目正在VSCode中开发。该项目非常简单,涉及启动器和可重用组件。我正在重构,当添加模块时,一切都停止了工作,我无法继续重构。
module-info中显示的错误是:< code>javafx.controls无法解析为模块。虽然很奇怪,但是如果我告诉Maven更新项目,在一些罕见的情况下,错误会告诉我模块是空的或者不存在。
源代码(实验分支): https://github.com/Osolemio44/text-area-right 这是项目的结构:
C:\WORKSPACE\TEXT-AREA-RIGHT
├───.vscode
├───src
│ └───main
│ ├───java
│ │ └───com
│ │ └───adeso
│ │ ├───custom
│ │ └───launcher
│ └───resources
│ └───com
│ └───adeso
└───target
启动器的模块信息:
module com.adeso.launcher {
requires transitive javafx.controls;
requires javafx.fxml;
opens com.adeso.launcher to javafx.fxml;
exports com.adeso.launcher;
}
组件的模块信息:
module com.adeso.custom {
requires transitive javafx.controls;
requires javafx.fxml;
opens com.adeso.custom to javafx.fxml;
// exports com.adeso.custom;
}
庞.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.adeso</groupId>
<artifactId>text-area-right</artifactId>
<version>0.0.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17.0.2</maven.compiler.source>
<maven.compiler.target>17.0.2</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- ============================================
============================================
= PLUGINS =
============================================
============================================ -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<executions>
<execution>
<!-- Default configuration for running -->
<!-- Usage: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>com.adeso.launcher.App</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<!-- +++++++++++++++++++++++++
+ JUNIT +
+++++++++++++++++++++++++ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
</plugins>
</build>
</project>
在检查了宝石海的所有信息后,我改变了我的项目结构,现在它似乎可以工作了。我切换到一个 Maven 模块项目,并在每个 maven 模块中创建了 1 个模块信息.java。
C:\WORKSPACE\TEXT-AREA-RIGHT
├───.vscode
├───launchermodule
│ └───src
│ └───main
│ ├───java
│ │ └───com
│ │ └───adeso
│ │ └───custom
│ └───resources
│ └───com
│ └───adeso
│ └───custom
└───nodemodule
└───src
├───main
│ ├───java
│ │ └───com
│ │ └───adeso
│ │ └───custom
│ └───resources
│ └───com
│ └───adeso
│ └───custom
└───test
└───java
└───com
因此,当我试图通过另一个类MainFX运行gui时,我遇到了一些错误(我将尝试解决这些错误,但这并不是这个问题的意义所在): 正是在这一点上,我尝试添加一个module-info.java,并解决了IntelliJ捕获的所有导入依赖项,添加了一些模块依赖项: 所以我的module-info.java不能编译,如果没有module-info.java文件,我就不能运行JavaFX,这可能在没有mod
非常简单的用例,我使用的是EclipseOxygen4.7。3a,包括来自Java9的支持。我有两个项目是Java 9项目: 我想在中使用类,因此我尝试将第二个模块导入第一个项目。 模块信息。java项目1: 模块信息。java项目2: Eclipse给了我错误: 项目二不能解析为模块 我是否必须将所有Java项目集中在一个“主项目”下,以便让Eclipse知道所有这些模块在其中都是可用的?还是我
我刚开始使用Java16,似乎不明白为什么我不能访问资源文件。我进行了一些故障排除,以缩小范围,至少在我似乎有问题的地方。 我正在使用IntelliJ IDEA 2021.2构建#IU-212.4746.92 我创建了一个新项目,我选择了带有OpenJDK 16的JavaFX。 然后,它用三个主文件创建项目,一个应用程序类、一个控制器类和一个FXML文件。创建项目后,我进入POM文件,选择了Jav
简介 Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式。 首先我们来看看Module模式的基本特征: 模块化,可重用 封装了变量和function,和全局的namaspace不接触,松耦合 只暴露可用public的方法,其它私有方法全部隐藏 关于Module模式,最早是由YUI的成员Eric Miraglia在
我终于要从Eclipse迁移到Android Studio,连一个小模块都连不上了。 这里是参考资料中唯一的文件--正如您可以通过屏幕截图看到的,这里没有错误 但在需要它的类中,r'没有解析。所以我很困惑--没有太多东西要查