Error opening Maven POM file dependency hierarchy in Eclipse - "Project read error"

Viewed 68715

When I open a POM file and click on the "Dependency Hierarchy" tab at the bottom, it gives me the error, "Project read error". It works with other projects in the same workspace, just not with this one. Any ideas?

enter image description here

EDIT

In response to @Yhn's answer.

  1. Running the compile and package phases outside of Eclipse from the command-line work as expected. It compiles the application and builds the final WAR file.
  2. Eclipse is indeed pointing to the default location of the Maven settings.xml file, so it should be aware of the custom repositories that are defined in it (my company has its own Maven repository).
  3. I can open and edit the POM file from Eclipse, so it must have read/write permissions to the file.
  4. The project is not configured in Eclipse as a Maven project, so I cannot run the package phase from Eclipse (I can only run it from the command-line).

I wonder if it has anything to do with the fact that I was having trouble building the project with Maven 3 because apparently some of the transitive dependencies are configured for Maven 1, which Maven 3 does not support (this is my theory anyway, based on some of the error messages). I can build the project with Maven 2, but I still get messages such as the following:

Downloading: http://dist.codehaus.org/mule/dependencies/maven2/org/codehaus/xfie/bcprov-jdk14/133/bcprov-jdk14-133.pom
[INFO] Unable to find resource 'org.codehaus.xfire:bcprov-jdk14:pom:133' in repsitory mule (http://dist.codehaus.org/mule/dependencies/maven2)

It must be able to find these dependences however, because it downloaded the JARs just fine and can build the application. It seems like the problem is that the dependencies don't have POM files associated with them, which is maybe why they cannot be used with Maven 3. This might also be why I cannot view the Dependency Hierarchy in Eclipse.

EDIT 2

I converted the project to a Maven project by going to "Configure > Convert to Maven Project". When I open the POM file, I see the error:

ArtifactDescriptorException: Failed to read artifact descriptor for woodstox:wst (Click for 140 more)

(woodstox:wst is another transitive dependency of the project). An error appears in the "Markers" view for seemingly every depedency and transitive dependency in my project. However, I can successfully build the project by doing a "Run As > Maven build". (Edit: This might be because this project has no Java source code, but the JARs of the dependencies correctly appear in the final WAR.) The Dependency Hierarchy still gives the same error--"Project read error".

About the "Unable to find resource" messages--but this only appears for a handful of transitive dependencies. The project has many more transitive dependencies, but these messages do not appear for them. It seems like, because the dependencies do not have POM files, that Maven tries to search for them every time the project is built. Is this normal not to have POMs??

How might I go about getting a repo manager? Is this something that would have to be installed on the company's Maven repository or can you install it on your own workstation?

11 Answers

I had the same problem. If you made your project a maven project, you should run:

  • Right Mouse Click on project | Maven | Update Dependencies or
  • Right Mouse Click on project | Maven | Update Project Configuration

That worked for me.

right click on the project, Maven->Update Project->Tick "Force Update of Snapshots/Releases"

I faced same situation today. In my case it's caused by dependency name in wrong case. E.g.

Project A -> Project B -> Project C In project B's pm file, I mistakenly specified the dependency artifacts name with "c" in stead of "C".

As in mac os, the files system is case insensitive. so I can build it in command line without detecting this mistake.

In Eclipse it breaks, but it provides very bad error message. In the error list, it says "dependency problem", but the name of dependency is empty. It also can't identify which line in the POM causes the problem.

When try to open "Effective POM" in POM viewer, it will show project read error. In the pop up error dialog box, it will show:

Could not read maven project
java.nio.channels.OverlappingFileLockException 

All the messages are useless and misleading.

I finally detected this problem by submit to Jenkins CI after wasted hours of time.

I did maven clean install and the errors were gone

I faced the same issue of "Project read error" while clicking on "Dependency Hierarchy" tab. In my project I had a parent pom and child pom. Parent pom had a property <appVersion>4.5<appVersion> that was being used in child pom <version>${appVersion}<version>. I selected the main project, right click and choose run as maven clean. The console display showed warning that version is using expression but should be a constant. Replacing ${appVersion} with constant value of 4.5 fixed the issue.

Related