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]


Reply via email to