From 328def4b236cba58b266f03fb96cb0aec41bd587 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Mon, 5 Oct 2026 15:06:06 +0200 Subject: [PATCH] Update Eclipse IDE import instructions This commit updates the Eclipse import instructions for modern versions of Eclipse IDE and Spring Tools for Eclipse (STS no longer exists as a product), and notes that the Eclipse IDE for Java Developers package works as well. - All references to Buildship have been removed, since we don't use it. Projects are now imported via "Existing Projects into Workspace" after running `./gradlew testClasses` and `./gradlew cleanEclipse eclipse`. - Obsolete advice has been removed: Kotlin/AJDT compatibility notes, the manual JAXB source folder step, and the JDK 8 and `MaxPermSize` hints. - The `--add-opens` and `-Xshare:off` VM options that the Gradle build applies to tests are now documented. - The broken TestNG link has been replaced with the Eclipse Marketplace one. Closes gh-37397 --- import-into-eclipse.md | 75 +++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/import-into-eclipse.md b/import-into-eclipse.md index 4754d61aaca..65f6bf7351f 100644 --- a/import-into-eclipse.md +++ b/import-into-eclipse.md @@ -1,40 +1,47 @@ -# Spring Framework - Eclipse/STS Project Import Guide +# Spring Framework - Eclipse Project Import Guide This document will guide you through the process of importing the Spring Framework -projects into Eclipse or the Spring Tool Suite (_STS_). It is recommended that you -have a recent version of Eclipse. As a bare minimum you will need Eclipse with full Java -17 support and Eclipse Buildship. +projects into Eclipse IDE or the Spring Tools for Eclipse. It is recommended that you +have a recent version of Eclipse. The build uses JDK 25 (see `.sdkmanrc`), so as a bare +minimum you will need Eclipse with full Java 25 support. -The following instructions have been tested against [STS](https://spring.io/tools) 4.12.0 -([download](https://github.com/spring-projects/sts4/wiki/Previous-Versions#spring-tools-4120-changelog)) -(based on Eclipse 4.21) with [Eclipse Buildship](https://projects.eclipse.org/projects/tools.buildship). -The instructions should work with the latest Eclipse distribution as long as you install -[Buildship](https://marketplace.eclipse.org/content/buildship-gradle-integration). Note -that STS 4 comes with Buildship preinstalled. - -If you are using Eclipse 4.21, you will need to install -[Java 17 Support for Eclipse 2021-09 (4.21)](https://marketplace.eclipse.org/content/java-17-support-eclipse-2021-09-421) -from the Eclipse Marketplace. +The following instructions have been tested against +[Spring Tools for Eclipse](https://spring.io/tools#eclipse) 5.4.0 (based on Eclipse IDE +4.41). The instructions should also work with the latest release of the +[Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/packages/); Spring +Tools is not required. ## Steps -_When instructed to execute `./gradlew` from the command line, be sure to execute it within your locally cloned `spring-framework` working directory._ +_When instructed to execute `./gradlew` from the command line, be sure to execute it +within your locally cloned `spring-framework` working directory._ 1. Ensure that the _Forbidden reference (access rule)_ in Eclipse is set to `Info` -(Preferences → Java → Compiler → Errors/Warnings → Deprecated and restricted API → Forbidden reference (access rule)). -1. Optionally install the [Kotlin Plugin for Eclipse](https://marketplace.eclipse.org/content/kotlin-plugin-eclipse) if you need to execute Kotlin-based tests or develop Kotlin extensions. - - **NOTE**: As of September 21, 2021, it appears that the Kotlin Plugin for Eclipse does not yet work with Eclipse 4.21. -1. Optionally install the [AspectJ Development Tools](https://marketplace.eclipse.org/content/aspectj-development-tools) (_AJDT_) if you need to work with the `spring-aspects` project. - - **NOTE**: As of September 21, 2021, it appears that the AspectJ Development Tools do not yet work with Eclipse 4.21. -1. Optionally install the [TestNG plugin](https://testng.org/doc/eclipse.html) in Eclipse if you need to execute individual TestNG test classes or tests in the `spring-test` module. - - As an alternative to installing the TestNG plugin, you can execute the `org.springframework.test.context.testng.TestNGTestSuite` class as a "JUnit 5" test class in Eclipse. -1. Build `spring-oxm` from the command line with `./gradlew :spring-oxm:check`. -1. To apply Spring Framework specific settings, run `./gradlew cleanEclipse eclipse` from the command line. -1. Import all projects into Eclipse (File → Import → Gradle → Existing Gradle Project → Navigate to the locally cloned `spring-framework` directory → Select Finish). - - If you have not installed AJDT, exclude the `spring-aspects` project from the import, if prompted, or close it after the import. - - If you run into errors during the import, you may need to set the _Java home_ for Gradle Buildship to the location of your JDK 8 installation in Eclipse (Preferences → Gradle → Java home). -1. If you need to execute JAXB-related tests in the `spring-oxm` project and wish to have the generated sources available, add the `build/generated-sources/jaxb` folder to the build path (right click on the `jaxb` folder and select "Build Path → Use as Source Folder"). - - If you do not see the `build` folder in the `spring-oxm` project, ensure that the "Gradle build folder" is not filtered out from the view. This setting is available under "Filters" in the configuration of the Package Explorer (available by clicking on the _three vertical dots_ in the upper right corner of the Package Explorer). + (Preferences → Java → Compiler → Errors/Warnings → Deprecated + and restricted API → Forbidden reference (access rule)). +1. Optionally install the + [Kotlin Plugin for Eclipse](https://marketplace.eclipse.org/content/kotlin-plugin-eclipse) + if you need to execute Kotlin-based tests or develop Kotlin extensions. +1. Optionally install the + [AspectJ Development Tools](https://marketplace.eclipse.org/content/aspectj-development-tools) + (_AJDT_) if you need to work with the `spring-aspects` project. +1. Optionally install the + [TestNG plugin](https://marketplace.eclipse.org/content/testng-eclipse) in Eclipse if + you need to execute individual TestNG test classes or tests in the `spring-test` + module. + - As an alternative to installing the TestNG plugin, you can execute the + `org.springframework.test.context.testng.TestNGTestSuite` class as a "JUnit 6" test + class in Eclipse. +1. Compile all main and test classes from the command line first with + `./gradlew testClasses`. This pre-compiles `spring-core` and generates the JAXB types + for `spring-oxm` (see _Known Issues_ below). +1. To apply Spring Framework specific settings, run `./gradlew cleanEclipse eclipse` + from the command line. +1. Import all projects into Eclipse (File → Import → General → Existing + Projects into Workspace → Navigate to the locally cloned `spring-framework` + directory → Select Finish). + - If you have not installed AJDT, exclude the `spring-aspects` project from the + import, if prompted, or close it after the import. 1. Code away! ## Known Issues @@ -42,13 +49,19 @@ _When instructed to execute `./gradlew` from the command line, be sure to execut 1. `spring-core` should be pre-compiled due to repackaged dependencies. - See `*RepackJar` tasks in the `spring-core.gradle` build file. 1. `spring-oxm` should be pre-compiled due to JAXB types generated for tests. - - Note that executing `./gradlew :spring-oxm:check` as explained in the _Steps_ above will compile `spring-core` and generate JAXB types for `spring-oxm`. + - Note that executing `./gradlew testClasses` as explained in the _Steps_ above will + compile `spring-core` and generate JAXB types for `spring-oxm`. 1. `spring-aspects` does not compile due to references to aspect types unknown to Eclipse. - If you installed _AJDT_ into Eclipse it should work. 1. While JUnit tests pass from the command line with Gradle, some may fail when run from the IDE. - Resolving this is a work in progress. - - If attempting to run all JUnit tests from within the IDE, you may need to set the following VM options to avoid out of memory errors: `-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m` + - If attempting to run all JUnit tests from within the IDE, you may need to set the + following VM option to avoid out of memory errors: `-Xmx2048m` + - Tests run via Gradle are also configured with the following VM options (see + `TestConventions` in `buildSrc`), which you may need to set in your Eclipse launch + configuration as well: `--add-opens=java.base/java.lang=ALL-UNNAMED + --add-opens=java.base/java.util=ALL-UNNAMED -Xshare:off` ## Tips