我有一个多模块Maven项目,其中一个模块使用JavaFX。虽然在Eclipse中编译一切都很好,但是执行
mvn清洁编译
返回此错误
package javafx.scene.robot does not exist
maven似乎看不到包含javafx.scene.robot
的javafx.graphics
模块(但是Eclipse看到了它,因为它不会给出编译错误)。我如何让Maven编译这段代码?
我已经创建了我的应用程序的迷你版本,它再现了这一点。这些是文件:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nl.eddy</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release> <!-- JDK Version -->
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>mod1</module>
</modules>
</project>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>nl.eddy</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>mod1</artifactId>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
</dependencies>
</project>
package nl.eddy.mod1;
import javafx.application.Application;
import javafx.scene.robot.Robot;
import javafx.stage.Stage;
public class Launch extends Application{
public static void main(String[] args) {
}
@Override
public void start(Stage primaryStage) throws Exception {
new Robot();
}
}
module nl.eddy.mod1 {
requires javafx.controls;
// requires javafx.graphics; uncommenting this does not change maven's message
}
mvn clean编译的输出
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/egr/eclipse-workspace/demo/mod1/src/main/java/nl/eddy/mod1/Launch.java:[4,26] package javafx.scene.robot does not exist
[ERROR] /C:/Users/egr/eclipse-workspace/demo/mod1/src/main/java/nl/eddy/mod1/Launch.java:[15,21] cannot find symbol
symbol: class Robot
location: class nl.eddy.mod1.Launch
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for demo 0.0.1-SNAPSHOT:
[INFO]
[INFO] demo ............................................... SUCCESS [ 0.368 s]
[INFO] mod1 ............................................... FAILURE [ 2.541 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.161 s
[INFO] Finished at: 2020-02-11T13:08:56+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project mod1: Compilation failure: Compilation failure:
[ERROR] /C:/Users/egr/eclipse-workspace/demo/mod1/src/main/java/nl/eddy/mod1/Launch.java:[4,26] package javafx.scene.robot does not exist
[ERROR] /C:/Users/egr/eclipse-workspace/demo/mod1/src/main/java/nl/eddy/mod1/Launch.java:[15,21] cannot find symbol
[ERROR] symbol: class Robot
[ERROR] location: class nl.eddy.mod1.Launch
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
mvn-x compile
日志中的编译器详细信息
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: C:\apps\apache-maven-3.6.0\bin\..
Java version: 12.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-12.0.2
Default locale: en_US, platform encoding: Cp1252
OS name: "windows server 2012 r2", version: "6.3", arch: "amd64", family: "windows"
当我将maven-compiler-plugin release元素改为值12而不是11时,编译就很好了。即与实际运行Maven的编译器的值相同。非常感谢@Josepereda,见评论。
使用指南 - 疑难问题 - 数据缺失或无数据问题 - 为什么看不到热力图 设置热力图的页面上边没有正确添加当前站点的统计代码 网站有跳转,但是热力图上边设置的监控网址是跳转之前的,请用跳转之后的网址设置; 注意查看时间,热力图是隔一天后才有数据的; 偶尔浏览器的显示存在问题,请将页面设置为100%大小,并作刷新处理,且建议使用Chrome和Firefox浏览器。 页面上添加了禁止iframe加载的
我在Eclipse中有一个简单的web应用程序maven项目。 我将以下依赖项添加到pom.xml文件中… 我创建了一个简单的web控制器类。。。 …项目可以找到@Controller注释,但@RequestMapping和@ResponseBody注释上有红色错误。 我清理了一切,重建了一切,没有运气。 我检查了项目中的Java构建路径,并将“Maven依赖项”添加到路径中,它包括以下JAR…
问题内容: 我正在尝试使用Jasmine规格文件对Angular服务进行单元测试。这需要加载模块。这是一个简单的规范,旨在简单地加载Angular模块: 当我运行Jasmine时,这将导致以下错误 jasmine.yml文件包含 该软件的版本为: Rails 3.2.7 jasmine-core 1.2.0 jasmine-headless-webkit 0.8.4 AngularJS 1.0.2
问题内容: 我有一个应该相等的整数(我通过输出验证了它)。但是在我的情况下,Java看不到这些变量具有相同的值。 我有以下代码: 并产生以下输出: 可能我必须添加定义如下的内容: 并且我们从环路构造采取: 因此,这两个变量都具有整数类型。 问题答案: 查看本文:装箱的值和相等性 使用或比较包装器类型(例如s,s或s)时,您 会将它们作为引用* 而不是值 进行比较 。 * 如果两个变量指向不同的对象
下面是我的设置: null mydomain.com:https在Chrome上很好,在Firefox或Edge上不好 www.mydomain.com:Chrome、Firefox或Edge没有https 我肯定我在配置“www”部分做了一些错误的事情。最奇怪的是Chrome与其他浏览器不识别HTTPS
我有一个简单的脚本,每2秒打印一次hello。 我有一个超简单的docker文件运行这个脚本。 首先我建立docker映像: 现在,我使用选项运行它,它按预期工作。 但是当我以分离模式运行它,然后尝试查看日志时,我什么也看不到。