Maven refactorings
IntelliJ IDEA lets you use several extract refactorings while you work in your POM. For example, you can extract a dependency definition into a parent POM if you have a multi-module project. You can also extract a repeatable content of dependencies into a property to eliminate duplicates.
Extract managed dependency
Let's say you have a multi-module project and in one of subprojects you have defined several dependencies that can be used by other subprojects.
You can use Extract managed dependency refactoring to extract such dependency into a parent POM under dependencyManagement
.
In your POM, select the dependency you want to extract.
Press Ctrl+Alt+M or select
.IntelliJ IDEA extracts the selected dependency into a parent POM, automatically creating a
dependencyManagement
section and a full dependency definition.Use gutter icons to see a popup with dependency descriptions or to navigate between parent and subprojects' dependencies.
Introduce property
Let's say you have a bunch of dependencies that have the same version
.
You can use the Introduce Property refactoring to introduce a property into the properties
section to manage it in one place.
In your POM, select an item (in our case
version
) you want to extract.Press Ctrl+Alt+V or select
.In the Introduce Property dialog, specify a name of the property and name of the POM and click OK.
IntelliJ IDEA creates a
properties
section with a new declaration and replaces the content of the selected dependency.If IntelliJ IDEA encounters more than one occurrence, it displays them in the Find tool window where you can manage their replacement.
Click Replace All to replace all the dependencies' versions.
Introduce Property dialog
Use this dialog to specify options for the Introduce Property refactoring.
Item | Description |
---|---|
Name | In this field, specify the name you want to assign to a new property. You can either type this name manually or select one of the values suggested by IntelliJ IDEA. |
Project | Select the pom.xml where the new property will be declared. |