ПРИМЕЧАНИЕ: поскольку я получил неправильный ответ в моем исходном вопросе , я больше не привлекал внимания.Я знаю, как думают программисты: они увидят «1 ответ» в моем вопросе и даже не откроют его.Не вините меня, что я мог сделать?Я все еще не нашел способ решить эту проблему: (
Я получаю следующие сообщения об ошибках при попытке запустить простой проект с maven, java-модулями и junit 5:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project echo: Compilation failure: Compilation failure:
[ERROR] /C:/Users/andre/eclipse-workspace/echo/src/main/java/module-info.java:[2,35] module not found: org.junit.jupiter.engine
[ERROR] /C:/Users/andre/eclipse-workspace/echo/src/main/java/module-info.java:[3,35] module not found: org.junit.jupiter.api
[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.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Это моя структура каталогов:
echo
----src/main/java
--------com.udp.echo
------------App.java
------------EchoClient.java
------------EchoServer.java
--------module-info.java
----src/test/java/com.udp.echo
--------EchoTest.java
----pom.xml
Это мой файл module-info.java:
open module echo {
requires junit;
}
Я на самом деле пытался сделать require org.junit.jupiter.api
и require org.junit.jupiter.engine
, ноэто не изменит результат.
это мой pom.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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.udp</groupId>
<artifactId>echo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>echo</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>12</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>12</maven.compiler.source>
<maven.compiler.target>12</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</build>
</project>
это результат запуска mvn -v
:
$ mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00)
Maven home: C:\apache-maven-3.6.1
Java version: 12.0.1, vendor: Oracle Corporation, runtime: C:\java\jdk-12.0.1
Default locale: pt_BR, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Wasn 't maven должен загружать его зависимости из репозитория maven? Если да, то почему он жалуется на то, что модуль не найден? Это просто не имеет смысла для меня.
Чего мне не хватает?