Reputation: 1605
I'm facing an error in my pom.xml file given below:
Plugin 'org.springframework.boot:spring-boot-maven-plugin:' not found
Below is my pom.xml :
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>dev.che</groupId>
<artifactId>stu</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>stu</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
How can I fix this error?
Upvotes: 156
Views: 365162
Reputation: 43
I faced this error while learning Spring Boot in 2023. I easily fix it by adding the following line at the spring-boot-starter-web
dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${project.parent.version}</version>
</dependency>
Upvotes: 4
Reputation: 785
I fixed the problem adding a version of the plugin in the pom.xml
.
<version>${project.parent.version}</version>
Upvotes: 67
Reputation: 4209
I fixed the problem adding the version of the plugin in the pom.xml
, which is the same of Spring Boot's version. (and it's working since Spring Boot 2.2 until 2.7.X)
So you just have to configure your pom.xml
like this:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
</plugin>
Upvotes: 395
Reputation: 5555
Run this :
mvn package spring-boot:repackage
mvn spring-boot:repackage
Upvotes: 0
Reputation: 1
Changing SDK default to the version of Java used helped me. (For intellij idea).
Project Structure -> Project -> Language level -> If it is SDK default change to your Java version
And then try to sync.
Upvotes: 0
Reputation: 1
Add in "Remote Jar Repositories"
https://mvnrepository.com/artifact/
And add in pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
then add in *.java
import org.springframework.transaction.annotation.Transactional;
Upvotes: 0
Reputation: 1230
I had this issue today 22 Jan 2022 using spring boot 2.6.3 from Intelij IDE and was able to resolve it by changing from 2.6.3 back to 2.6.2 .As of the time of writing I was getting this error
Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:3.2.2
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version> <!-- change 2.6.3 to 2.6.2-->
<relativePath/>
</parent>
Upvotes: 2
Reputation: 303
just use the last version of spring-boot-maven-plugin
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin
or use same version of
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
Upvotes: 0
Reputation: 1
Issue with --release flag occurs when the java version of the project doesn't match with the environment, solution is to check and update the environment variables for JAVA_HOME,MAVEN_HOME,PATH with set command.
Moreover make sure you add properties for java version and maven release version as below:
<properties>
<java.version>18</java.version>
<maven.compiler.release>18</maven.compiler.release>
</properties>
After making change do not forget to clean the project, update the project and then mvn install.
Upvotes: 0
Reputation: 1
I have an edge solution, in IntelliJ IDEA. When my mouse hovers over the <groupId>org.springframework.boot</groupId>
, I get the version and use it as
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.2.0</version>
Upvotes: 0
Reputation: 1665
in intellij 2022 i faced this problem; and solve it by adding a line:
<version>${project.parent.version}</version>
in my "pom.xml":
<project>
...
...
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
</plugin>
</plugins>
</build>
</project>
Upvotes: 1
Reputation: 2964
For me this was nothing to do with versions or any IDE settings, it was simply calling spring-boot:repackage on its own.
It has to be called with package, so:
mvn package spring-boot:repackage
Has to be done and not:
mvn spring-boot:repackage
I'm assuming that this changes values in the reactor and the second call has a different method to use. When I look at the method that was failing it is now deprecated:
Create a new Packager instance.
Deprecated
since 2.3.10 for removal in 2.5 in favor of Packager(File) and setLayoutFactory(LayoutFactory)
Params:
source – the source archive file to package layoutFactory – the layout factory to use or null
And so probably calling it on its own will result in this method call and thus erroring. The "new" chained method is obviously behaving differently and therefore works.
Upvotes: 0
Reputation: 242
I fixed this problem by adding version:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
</plugin>
</plugins>
</build>
Upvotes: 8
Reputation: 1
In my case it was just inserting the Spring Boot parent version and the error disappeared spring-boot-starter-parent 3.0.1 stayed like this org.springframework.boot spring-boot-maven-plugin 3.0.1
Upvotes: 0
Reputation: 369
In your pom.xml file, go to the plugins section and then add this line below artifactId.
<version>${project.parent.version}</version>
Your code should look like this:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
Then load maven changes and it should fix your problem.
Upvotes: 1
Reputation: 129
For intellij
Upvotes: 0
Reputation: 11
I tried a lot of the solutions here but only this worked for me:
I changed the Maven wrapper to "Bundled" in the "Maven home path" configuration. You can find this at the menu: Preferences > Build, execution, development > build tools > maven
Upvotes: 1
Reputation: 155
Your dependencies are not loaded into your project if you declared them at a later point.
For IntelliJ IDEA
Right click on your project > Maven > Reload Project
This should fix the error.
Upvotes: 0
Reputation: 241
This could be due to network issue which lead to partial download of dependencies and plugins. For me below step worked in IntelliJIDEA:
Close the project from editor: File -> Close Project
Then reopen the project.
Upvotes: 4
Reputation: 61
Simply add version of the spring-boot-starter-parent in the plugin section i.e
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
Change into
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.5.RELEASE</version>
</plugin>
check out here for more details
Upvotes: 3
Reputation: 11
Right clicking on my pom.xml -> Maven -> Reload Project did the trick for me.
Upvotes: 0
Reputation: 773
I encountered this issue in January 2022 when the version changed to 2.6.3. I lowered the version of the project to 2.6.2 as well but was unsuccessful. However adding the following line <version>${project.parent.version}</version>
plugins solves the issue regardless of the version. The snippet is given below
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
</plugin>
Upvotes: 7
Reputation: 665
it works definetely :
add this <version>${project.parent.version}</version>
in Pom.xml
like this :
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
or another solution is :
add <version>2.4.3</version>
in pom.xml
Upvotes: 2
Reputation: 1
I moved my package with controllers into the same package where IntroApplication is, for noobs like me it solved the problem.
Upvotes: 0
Reputation: 1
Quick solution
I tried all the solutions above and realized that the dependencies were not being downloaded. That's when I knew it was a network issue. My network was strong so I knew it had too be the firewall. I added intellij IDE to my list of exceptions and it worked like charm.
Upvotes: -1
Reputation: 389
This solution worked for me:
From the Preferences in Intelli J, navigate to "Build, Execution, Deployment > Build Tools > Maven", check the "Use plugin registry", and click "OK".
Then "File > Invalidate Caches / Restart" to reload Intelli J. The error will go away automatically.
I just followed these steps in IntelliJ IDEA:
Click File from menu and then click Invalidate Caches / Restart.
Upvotes: 15
Reputation: 16539
The pom.xml is correct. It seems that there is a network issue. The plugin was not downloaded due to that.
Steps to solve the issue :
Check for network issue. You need to have a strong internet connection to download all the dependencies and plugins using maven. Otherwise, you will face issue to build maven project for sure.
For eclipse/STS :
Right click on the project >> Run As >> Maven clean (this will clean the project by deleting the target folder).
Example :
Example :
Note: Enable the option Force update of Snapshot/Releases (look in above screenshot). By default, this option is not enabled. Click on ok. It will start updating.
Note : Go the Preference -> Build, Execution and Deployment -> Build Tools -> Maven -> Enable "Always update Snapshots" option present -> Click on Apply and Ok. This option helps sometimes.
Download maven from here and extract it.
Set maven location on the environment variable so that it can run from anywhere.
Open CMD/Terminal and then do mvn clean install
inside the project.
Update for viewers: <version>
tag is not mandatory tag to be there for spring-boot projects because pom.xml created by spring for spring-boot can handle the version of the spring-boot-maven-plugin
.
Updated pom.xml :
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>dev.che</groupId>
<artifactId>stu</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>stu</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Edit :
If above steps are not solving your issue, then you can go for the workaround solution by explicitly providing the parent spring boot version in the plugin
for spring-boot-maven-plugin
(not a recommended solution):
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${parent.version}</version>
</plugin>
</plugins>
Upvotes: 37
Reputation: 339
Another possibility is if you have spring-boot-maven-plugin
in a sub-module which parent has spring-boot-starter-parent
as parent.
So, the module with spring-boot-maven-plugin
is a 'grandchild' of spring-boot-starter-parent
.
If that's the case, since you can't reference AFAIK the grandparent, you need to manually add its version
.
I am open to recommendations, so that I don't need to manually set the version
in such a configuration.
Upvotes: 2
Reputation: 1444
If solution suggested by Anish B doesn't work and you are using intellij, try deleting the .idea and *.iml file from the project directory and open the pom.xml file with intellij. This should fix the issue.
Upvotes: 4