Jan*_*wak 2 java spring maven spring-boot
我有一个奇怪的问题,mvn clean test只有当我尝试module-info.java使用 Spring Boot 添加到我的项目时才会失败。\n项目结构非常简单
\n\n \xe2\x94\x82 pom.xml\n \xe2\x94\x82\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80.idea\ n \xe2\x94\x82 .gitignore\n \xe2\x94\x82 编译器.xml\n \xe2\x94\x82 编码.xml\n \xe2\x94\x82 jarRepositories.xml\n \xe2\x94\x82 Misc.xml\n \xe2\x94\x82 工作空间.xml\n \xe2\x94\x82\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80main\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 \xe2\x94\x80java\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 module-info.java\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\ x82\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80com\n \xe2\x94\x82 \xe2\ x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80test\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\ x94\x80\xe2\x94\x80资源\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80test\n \xe2\x94\x9c\xe2\x94\x80\ xe2\x94\x80\xe2\x94\x80java\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80com\n \xe2\x94\ x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80test\n \xe2\x94\x82 SomeTest.java\n \xe2\x94\x82\n \xe2\x94 \x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 资源\n\n\n
SomeTest.java很简单
\nimport org.junit.jupiter.api.Assertions;\nimport org.junit.jupiter.api.Test;\n\npublic class SomeTest {\n @Test\n public void test() {\n var isTrue = true;\n Assertions.assertTrue(isTrue);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\nmodule-info.java还:
open module com.test {\n}\nRun Code Online (Sandbox Code Playgroud)\npom.xml文件取自 sprint initalizr
<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n <parent>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-parent</artifactId>\n <version>2.5.5</version>\n <relativePath/> <!-- lookup parent from repository -->\n </parent>\n <modelVersion>4.0.0</modelVersion>\n <groupId>com.test</groupId>\n <artifactId>SampleTest</artifactId>\n <version>1.0.0-SNAPSHOT</version>\n <properties>\n <java.version>17</java.version>\n </properties>\n <dependencies>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter</artifactId>\n </dependency>\n \n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-test</artifactId>\n <scope>test</scope>\n </dependency>\n </dependencies>\n \n <build>\n <plugins>\n <plugin>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-maven-plugin</artifactId>\n </plugin>\n </plugins>\n </build>\n</project>\nRun Code Online (Sandbox Code Playgroud)\n现在奇怪的是,当module-info.java文件存在时mvn clean test失败\n
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project SampleTest: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test failed: Unsupported class file major version 61 -> [Help 1]\nRun Code Online (Sandbox Code Playgroud)\n但是当我删除时module-info.java,一切都会没有错误。有什么想法如何使用 Spring Boot 实现 java 模块吗?:)
您必须覆盖使用的 maven-surefire-plugin 版本,因为 spring boot Parent 定义的版本太旧。
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
</plugins>
</pluginManagement>
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11080 次 |
| 最近记录: |