I have a maven project that contains several modules. In Eclipse (Juno, with m2e) it seems to compile fine. But when I do a maven install on one of the modules, the build fails immediately.
Parent pom:
<groupId>com.sw.system4</groupId> <artifactId>system4-parent</artifactId> <version>${system4.version}</version> <packaging>pom</packaging> <name>System 4 Parent Project</name> <modules> <module>system4-data</module> ...others... </modules> <properties> <system4.version>0.0.1-SNAPSHOT</system4.version> <spring.version>3.2.3.RELEASE</spring.version> ... others... </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> <scope>runtime</scope> </dependency> ... lots of others ... </dependencies> </dependencyManagement>
Child pom:
<parent> <groupId>com.sw.system4</groupId> <artifactId>system4-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>system4-data</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <scope>runtime</scope> </dependency> ... lots of others... </dependencies>
When I build, I get the following output:
[ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project com.sw.system4:system4-data:0.0.1-SNAPSHOT (C:\work\eclips e_workspaces\systemiv\system4-parent\system4-data\pom.xml) has 8 errors [ERROR] 'dependencies.dependency.version' for org.springframework:spring-cor e:jar is missing. @ line 16, column 16 ... others omitted for clarity ...
I dont understand why it doesn't even attempt to compile. Ive tried removing the runtime scope from parent and child, and it makes no difference. Please help!
A couple things I think you could try:
Put the literal value of the version in the child pom
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.3.RELEASE</version> <scope>runtime</scope> </dependency>
Clear your .m2 cache normally located C:\Users\user.m2\repository. I would say I do this pretty frequently when I'm working in maven. Especially before committing so that I can be more confident CI will run. You don't have to nuke the folder every time, sometimes just your project packages and the .cache folder are enough.
Add a relativePath tag to your parent pom declaration
<parent> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> <relativePath>../parent/pom.xml</relativePath> </parent>
It looks like you have 8 total errors in your poms. I would try to get some basic compilation running before adding the parent pom and properties.
If anyone finds their way here with the same problem I was having, my problem was that I was missing the <dependencyManagement>
tags around dependencies I had copied from the child pom.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With