【发布时间】:2021-10-14 19:20:29
【问题描述】:
我尝试使用 Java 9+ 内置的 JPMS(Java Platform Module System) 来模块化 Spring Boot 应用程序,检查the complete sample codes here。
在 IDEA 中,运行测试时,它运行良好。
但是当我通过根文件夹中的mvn clean verify 运行它时,greeting.application.test 将由于异常“找不到包com.example.greeting.application 和类GreetingApplication”而失败。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project greeting-application-test: Compilation failure: Compilation fai
lure:
[ERROR] /D:/hantsylabs/spring-puzzles/modular-jpms/greeting-application-test/src/main/java/com/example/greeting/application/test/GreetingApplicationTests.java:[3,40] package com.exampl
e.greeting.application does not exist
[ERROR] /D:/hantsylabs/spring-puzzles/modular-jpms/greeting-application-test/src/main/java/com/example/greeting/application/test/GreetingApplicationTests.java:[13,19] cannot find symbo
l
[ERROR] symbol: class GreetingApplication
greeting.application.test中的module-info.java是这样的。
module greeting.application.test {
requires greeting.application;
requires spring.web;
requires spring.core;
requires spring.beans;
requires spring.context;
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.webflux;
requires spring.test;
requires spring.boot.test;
requires spring.boot.test.autoconfigure;
requires org.junit.jupiter;
requires org.junit.jupiter.api;
requires org.junit.jupiter.params;
requires org.junit.jupiter.engine;
requires org.junit.platform.commons;
requires org.assertj.core;
requires org.mockito.junit.jupiter;
requires transitive net.bytebuddy;
opens com.example.greeting.application.test to spring.core, org.junit.platform.commons;
}
【问题讨论】:
标签: java spring-boot java-platform-module-system spring-boot-maven-plugin