khmarbaise commented on a change in pull request #423:
URL: https://github.com/apache/maven/pull/423#discussion_r550328822
##########
File path:
maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
##########
@@ -105,6 +106,20 @@ public MavenExecutionPlan resolveBuildPlan( MavenSession
session, MavenProject p
lifecycleDebugLogger.debugProjectPlan( project, executionPlan );
+ // With Maven 4's build/consumer the POM will always rewrite during
distribution.
+ // The maven-gpg-plugin uses the original POM, causing an invalid
signature.
+ // Fail as long as there's no solution available yet
+ Optional<MojoExecution> gpgMojo =
executionPlan.getMojoExecutions().stream()
+ .filter( m -> "org.apache.maven.plugins".equals(
m.getGroupId() ) )
+ .filter( m -> "maven-gpg-plugin".equals( m.getArtifactId() ) )
+ .findAny();
+
+ if ( gpgMojo.isPresent() )
+ {
Review comment:
A separate predicate expresses better what you really mean because it
gives it a readable name.
I prefer this one:
```java
boolean gpgMojo =
executionPlan.getMojoExecutions().stream().anyMatch(MavenGpgPlugin);
```
Can't be clearer from my POV... If you like more details jump to the
predicate via IDE.
Complexity? If you use stream API predicates are more less everywhere.
Usually if a method is to long (too complex) you refactor out a part of it with
a readable name. Here it's the same.
Furthermore combined filters don't give you the chance to use
`anyMatch(..)`, `.allMatch(..)` or `noneMatch(..)` which is often a good choice
and often not used based on the usage of chaining several filter(..)...
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]