Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The import org.springframework cannot be resolved."

Here is my POM.xml file:

<project>     <properties>         <jdk.version>1.6</jdk.version>         <spring.version>3.2.2.RELEASE</spring.version>         <spring.batch.version>2.2.0.RELEASE</spring.batch.version>         <mysql.driver.version>5.1.25</mysql.driver.version>         <junit.version>4.11</junit.version>     </properties>      <dependencies>          <!-- Spring Core -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-core</artifactId>             <version>${spring.version}</version>         </dependency>          <!-- Spring jdbc, for database -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jdbc</artifactId>             <version>${spring.version}</version>         </dependency>          <!-- Spring XML to/back object -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-oxm</artifactId>             <version>${spring.version}</version>         </dependency>          <!-- MySQL database driver -->         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>${mysql.driver.version}</version>         </dependency>          <!-- Spring Batch dependencies -->         <dependency>             <groupId>org.springframework.batch</groupId>             <artifactId>spring-batch-core</artifactId>             <version>${spring.batch.version}</version>         </dependency>         <dependency>             <groupId>org.springframework.batch</groupId>             <artifactId>spring-batch-infrastructure</artifactId>             <version>${spring.batch.version}</version>         </dependency>          <!-- Spring Batch unit test -->         <dependency>             <groupId>org.springframework.batch</groupId>             <artifactId>spring-batch-test</artifactId>             <version>${spring.batch.version}</version>         </dependency>          <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>${junit.version}</version>             <scope>test</scope>         </dependency>      </dependencies>     <build>         <finalName>spring-batch</finalName>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-eclipse-plugin</artifactId>                 <version>2.9</version>                 <configuration>                     <downloadSources>true</downloadSources>                     <downloadJavadocs>false</downloadJavadocs>                 </configuration>             </plugin>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>2.3.2</version>                 <configuration>                     <source>${jdk.version}</source>                     <target>${jdk.version}</target>                 </configuration>             </plugin>         </plugins>     </build> </project> 


And below there is my java class:

import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;  public class App {     public static void main(String[] args) {         String[] springConfig  =             {                 "spring/batch/jobs/job-hello-world.xml"             };         ApplicationContext context =             new ClassPathXmlApplicationContext(springConfig);         JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");         Job job = (Job) context.getBean("helloWorldJob");         try {             JobExecution execution = jobLauncher.run(job, new JobParameters());             System.out.println("Exit Status : " + execution.getStatus());         } catch (Exception e) {             e.printStackTrace();         }     } } 

I am getting an error in import statements in my App.java classnd this is the message:

"The import org.springframework cannot be resolved."

I clearly mentioned the dependencies in POM.xml, but my java class still cannot pick the dependency from there.

like image 625
Vaibhav Avatar asked Nov 09 '13 01:11

Vaibhav


People also ask

How do I add Org in Springframework?

It seems that you just create a maven project in NetBeans. The maven dependencies you declared in pom. xml will be downloaded and listed in the Dependencies folder. Right click on Dependencies folder and click on Download Declared Dependencies to reload the dependency.

How do I import Springframework into eclipse?

You can install the Spring Tools for Eclipse IDE into an existing Eclipse installation using the Eclipse Marketplace. Just open the marketplace client in Eclipse, search for Spring Tools and install the “Spring Tools (aka Spring IDE and Spring Tool Suite)” entry.

What is the use of spring boot framework?

Spring Boot helps developers create applications that just run. Specifically, it lets you create standalone applications that run on their own, without relying on an external web server, by embedding a web server such as Tomcat or Netty into your app during the initialization process.


2 Answers

You need to follow a few steps to debug properly.

1) mvn clean dependency:tree Take a look at the output to see exactly what you get and verify your dependencies are all there.

2) mvn clean compile. Does this fail? If not does that mean you only get the error in Eclipse?

You mentioned in a comment "And I run both commands above but I am getting this error". Did mvn clean compile work? Or did you get an error for that as well? If it worked then it's just an IDE problem and I'd look at the m2eclipse plugin. Better still, use IntelliJ as the free version has better maven support than Eclipse ;-)

Some style things ...

People often add too many dependencies in their pom file when they don't need to. If you take a look at a couple of links in mavenrepository.com you can see that spring-oxm and spring-jdbc both depend on spring-core so you don't need to add that explicitly (for example). mvn clean dependency:tree will show you what is coming in after all of that, but this is more tidying.

spring-batch-test should be test scope.

like image 172
Matt Byrne Avatar answered Oct 05 '22 13:10

Matt Byrne


Finally my issue got resolved. I was importing the project as "Existing project into workspace". This was completely wrong. After that I selected "Existing Maven project" and after that some few hiccups and all errors were removed. In this process I got to learn so many things in Maven which are important for a new comer in Maven project.

like image 38
Vaibhav Avatar answered Oct 05 '22 14:10

Vaibhav