Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[MSOURCES-115] aggregate-sources yields different results based on reactor

Open
#185 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
java
Domain
build-system

Research direction

Start by locating the aggregate-sources goal and how it gathers projects from the Maven reactor. Reproduce the issue by building a child project directly and then from the parent, comparing the generated source JAR contents. Done means aggregate-sources includes only the current project's children and produces identical artifacts in both build modes.

Written by the indexing model from the issue text.

Description

bug priority:major

Raymond DeCampo opened MSOURCES-115 and commented

The main idea here is that depending on whether a particular project is built from the parent project or on its own, the sources jar generated by aggregate-sources may be different.  IMO this attacks the repeat-ability of the build.  The root cause is that aggregate-sources pulls in all the sources in the reactor.

 

Consider a three layer structure.  One parent project at the top level, say foo-parent.  Then two child modules at the next level, say foo-client and foo-server.  Then some number of children of foo-client and foo-server where the actual Java code lives.

 

The poms for foo-server and foo-client have aggregate-sources set up.  If a build is executed directly on foo-client for example, then the resulting source foo-client-sources-*.jar will have the source from the children of foo-client.

 

If a build is executed from foo-parent, both foo-client and foo-server are included in the reactor.  Now the resulting foo-client-sources-*.jar includes the source code from foo-server's children as well as its own.

 

I would expect that the aggregate-sources target would only include the source of the children of the current project instead of the source from any project in the reactor.  I would also expect that the build should result identical artifacts whether or not it is invoked from the parent project or not.

 


Affects: 3.0.1

Dominant language
Java
Stars
37
Forks
38
Avg merge
22h 35m
Merged PRs (30d)
6

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/maven-source-plugin

All issues in apache/maven-source-plugin

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.