wilx opened a new pull request, #1091:
URL: https://github.com/apache/maven-compiler-plugin/pull/1091
## Summary
Keep the final class files deterministic when multiple compiler executions
use different release levels and share an
output directory.
## Root cause
An earlier execution can overwrite an existing class file without changing
its filename. `IncrementalBuildHelper`
compares input and output file names, so a later execution can incorrectly
consider its source up to date even though
a different execution produced the shared output.
## Changes
- Add an Invoker regression test that runs `clean compile` followed by
`compile` and verifies the Java 8 classes and
Java 11 module descriptor.
- Track the last `goal@executionId` that processed each mapped output in
Maven's per-project plugin context.
- Recompile when another execution processed an overlapping output, while
allowing a repeated invocation of the same
execution to remain up to date.
- Avoid filesystem timestamps and their platform-dependent precision.
## Validation
- `mvn -Prun-its verify`: 77 passed, 0 failed, 5 environment-specific skips.
- Focused `MCOMPILER-525` and `MCOMPILER-578` Invoker tests: passed.
- Unit tests: 32 passed.
- Spotless, Checkstyle, and `git diff --check`: passed.
Following this checklist to help us incorporate your
contribution quickly and easily:
- [x] Make sure there is a [JIRA
issue](https://issues.apache.org/jira/browse/MCOMPILER) filed
for the change (usually before you start working on it). Trivial
changes like typos do not
require a JIRA issue. Your pull request should address just this
issue, without
pulling in other changes.
- [x] Each commit in the pull request should have a meaningful subject line
and body.
- [x] Format the pull request title like `[MCOMPILER-XXX] - Fixes bug in
ApproximateQuantiles`,
where you replace `MCOMPILER-XXX` with the appropriate JIRA issue.
Best practice
is to use the JIRA issue title in the pull request title and in the
first line of the
commit message.
- [x] Write a pull request description that is detailed enough to
understand what the pull request does, how, and why.
- [x] Run `mvn clean verify` to make sure basic checks pass. A more
thorough check will
be performed on your pull request automatically.
- [x] You have run the integration tests successfully (`mvn -Prun-its clean
verify`).
If your pull request is about ~20 lines of code you don't need to sign an
[Individual Contributor License
Agreement](https://www.apache.org/licenses/icla.pdf) if you are unsure
please ask on the developers list.
To make clear that you license your contribution under
the [Apache License Version 2.0, January
2004](http://www.apache.org/licenses/LICENSE-2.0)
you have to acknowledge this by using the following check-box.
- [x] I hereby declare this contribution to be licenced under the
[Apache License Version 2.0, January
2004](http://www.apache.org/licenses/LICENSE-2.0)
- [ ] In any other case, please file an
[Apache Individual Contributor License
Agreement](https://www.apache.org/licenses/icla.pdf).
Fixes #788
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]