Migrating IntelliJ’s build to use Maven project libraries
Historically, all libraries used for building IntelliJ have been stored, as JAR files, directly in the IntelliJ git repositories. This approach has several downsides, such as increasing the size of the git repo whenever we need to update to a new version. Also, who wants to manually manage dependencies and versions these days? We’ve recently made some changes to try and improve this situation.
Ideally, moving the IntellIJ IDEA project to a modern dependency management system such as Gradle would allow us to solve these problems. Unfortunately, the IntelliJ project is very large, and right now, there are performance issues when synchronising a Gradle project of that size with IntelliJ’s project model. This is something we’re working on with the folks from Gradle, and hope to make this happen at some point in the future.
In the meantime, we’re taking small steps, and have started migrating our libraries to be Maven project libraries. This is a feature that IntelliJ has had for a while, and we improved it in IntelliJ 2017.2.
Instead of storing the JAR files as part of the source tree, we can now simply store the Maven coordinates of the dependency, and IntelliJ will automatically download any JARs and source zips when you open or build the project. As part of the updates for IntelliJ 2017.2, the build scripts for IntelliJ-based products are also aware of repository libraries and will also download the JAR files if necessary.
The master branch of the IntelliJ IDEA Community Edition sources already has some repository libraries. We’re going to use this approach for any new libraries we add, and we’ll be gradually migrating existing libraries over time. Please make sure you’re using IntelliJ 2017.2.1 or newer to work with the IntelliJ sources, as stated in the README.
Subscribe to Blog updates
Thanks, we've got you!
Wayland Support for IntelliJ-based IDEs
For Linux users of IntelliJ-based IDEs, an exciting advancement is on the horizon – the upcoming support of the Wayland display server protocol. This update is set to bring a host of benefits, including solving the age-old fractional scaling problem and elevating desktop integration when working wit…
Language Server Protocol for Plugin Developers
With the 2023.2 release cycle, IntelliJ-based IDEs now support the Language Server Protocol (LSP). Discover how this may improve the assistance for custom language-specific features and learn how to begin integrating LSP into a plugin for your IDE.
Busy Plugin Developers Newsletter – Summer 2022
Read this Newsletter to learn about the latest JetBrains Marketplace news and plugin development tooling updates.
IntelliJ Project Migrates to Java 17
The source code of the IntelliJ project was recently migrated to Java 17. We still have some modules compiled to be compatible with older Java versions so we can support running users’ projects under these versions. However, most of the platform and plugin modules now use Java 17, and the upcoming 2…