Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the maven-site-plugin to resolve the parent pom.xml of my multimodule Maven project?

I have a garden variety Maven project. It has several modules in it. Thus the root pom.xml serves as both parent and aggregator in grand Maven fashion.

This project builds and installs fine.

The root pom.xml inherits from a corporate pom.xml with a stanza like this:

<parent>
  <groupId>foo</groupId>
  <artifactId>bar</artifactId>
  <version>16</version> <!-- look, Ma, no SNAPSHOT -->
</parent>

When I run mvn site against this root pom.xml, the maven-site-plugin version 3.2 reports that it cannot resolve the parent.

The parent is of course present in my local repository and in my local Nexus. No other phase of the lifecycle has any trouble resolving the parent.

Others have reported this issue. There is also another StackOverflow question on this subject but it was not immediately apparent that its issue was the exact same as mine.

Adding <relativePath/> to the <parent> stanza above (my first thought) did not alter the behavior in any way.

How can I get the maven-site-plugin to resolve the parent pom.xml?

like image 668
Laird Nelson Avatar asked Jan 13 '23 23:01

Laird Nelson


1 Answers

This is a bug in the Maven site plugin. The Maven site plugin for various reasons will only ever look for dependencies in what it thinks is Maven central.

Therefore you either have to:

  1. Have a <mirror> element that proxies central through your own Nexus server.
  2. In your local Maven repository, find the parent pom artifact area. Edit its _maven.repositories file so that any mention of the repository name itself is replaced with an empty string.

I chose the latter option. After this the build runs fine.

like image 182
Laird Nelson Avatar answered Apr 23 '23 22:04

Laird Nelson