https://github.com/delsner/transitive-hull-maven-plugin
A Maven plugin that calculates the transitive hull of a changed Maven module, including the upstream dependencies of downstream dependencies.
https://github.com/delsner/transitive-hull-maven-plugin
Last synced: 3 days ago
JSON representation
A Maven plugin that calculates the transitive hull of a changed Maven module, including the upstream dependencies of downstream dependencies.
- Host: GitHub
- URL: https://github.com/delsner/transitive-hull-maven-plugin
- Owner: delsner
- Created: 2021-09-03T07:11:44.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-03T15:20:33.000Z (almost 5 years ago)
- Last Synced: 2025-11-22T10:33:15.047Z (7 months ago)
- Language: Java
- Size: 14.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# transitive-hull-maven-plugin
A Maven plugin that calculates the transitive hull of all up- and downstream Modules for a given Maven reactor project.
## Demonstration of missing modules in Maven reactor
In `sample-project` run:
```bash
mvn -pl d/pom.xml -am -amd validate
```
It will only output:
```text
...
[INFO] Reactor Build Order:
[INFO]
[INFO] parent [pom]
[INFO] d [jar]
[INFO] e [jar]
...
```
Assuming we had changed `d/pom.xml` and would like to build all relevant modules, we would in fact miss module `h` which is required for module `e` to be built.
## Demonstration of transitive hull Maven extension
Run `mvn install` in the root of this project (to install the extension to your local Maven repository).
Then, navigate to `sample-project` and run:
```bash
mvn edu.tum.sse:transitive-hull-maven-plugin:0.0.1-SNAPSHOT:transitive-hull -DchangedModules=changedModules.txt
```
which should output:
```text
...
[INFO] --- transitive-hull-maven-plugin:0.0.1-SNAPSHOT:transitive-hull (default-cli) @ parent ---
[INFO] Selected projects:
e
d
parent
h
...
```
## Open questions
- [ ] How can we integrate this with the reactor, to only continue building the identified modules (`session.setProjects()` does not apparently suffice)?