From 9914ea023cc55267c46dcc4a07ae01aa97ae418b Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Wed, 23 Dec 2020 15:56:15 +0100 Subject: [PATCH 1/2] [MNG-4660] Increase usefulness of logging --- .../java/org/apache/maven/ReactorReader.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/ReactorReader.java b/maven-core/src/main/java/org/apache/maven/ReactorReader.java index 03463df3087c..9df233084d3b 100644 --- a/maven-core/src/main/java/org/apache/maven/ReactorReader.java +++ b/maven-core/src/main/java/org/apache/maven/ReactorReader.java @@ -43,10 +43,11 @@ import org.apache.maven.model.Model; import org.apache.maven.project.MavenProject; import org.apache.maven.repository.internal.MavenWorkspaceReader; -import org.codehaus.plexus.logging.Logger; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.repository.WorkspaceRepository; import org.eclipse.aether.util.artifact.ArtifactIdUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * An implementation of a workspace reader that knows how to search the Maven reactor for artifacts, either as packaged @@ -64,7 +65,7 @@ class ReactorReader private static final Collection COMPILE_PHASE_TYPES = Arrays.asList( "jar", "ejb-client", "war", "rar", "ejb3", "par", "sar", "wsr", "har", "app-client" ); - private Logger logger; + private static final Logger LOGGER = LoggerFactory.getLogger( ReactorReader.class ); private MavenSession session; @@ -75,9 +76,8 @@ class ReactorReader private WorkspaceRepository repository; @Inject - ReactorReader( MavenSession session, Logger logger ) + ReactorReader( MavenSession session ) { - this.logger = logger; this.session = session; this.projectsByGAV = new HashMap<>( session.getAllProjects().size() * 2 ); session.getAllProjects().forEach( project -> @@ -266,7 +266,12 @@ private boolean isPackagedArtifactUpToDate( MavenProject project, File packagedA long outputFileLastModified = Files.getLastModifiedTime( outputFile ).toMillis(); if ( outputFileLastModified > artifactLastModified ) { - logger.warn( "Packaged artifact is not up-to-date compared to the build output directory" ); + LOGGER.warn( + "Packaged artifact for {} is not up-to-date compared to the build output directory; " + + "file {} is more recent than {}.", + project.getArtifactId(), + relativizeOutputFile( outputFile ), relativizeOutputFile( packagedArtifactFile.toPath() ) + ); return false; } } @@ -275,7 +280,7 @@ private boolean isPackagedArtifactUpToDate( MavenProject project, File packagedA } catch ( IOException e ) { - logger.warn( "An I/O error occurred while checking if the packaged artifact is up-to-date " + LOGGER.warn( "An I/O error occurred while checking if the packaged artifact is up-to-date " + "against the build output directory. " + "Continuing with the assumption that it is up-to-date.", e ); return true; @@ -288,6 +293,12 @@ private boolean hasBeenPackagedDuringThisSession( MavenProject project ) || project.hasLifecyclePhase( "deploy" ); } + private Path relativizeOutputFile( final Path outputFile ) + { + Path projectBaseDirectory = Paths.get( session.getRequest().getMultiModuleProjectDirectory().toURI() ); + return projectBaseDirectory.relativize( outputFile ); + } + /** * Tries to resolve the specified artifact from the artifacts of the given project. * From 0238f94440d8ba5dc75d66e176ac5dd30088e18a Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Wed, 23 Dec 2020 16:02:31 +0100 Subject: [PATCH 2/2] Nit: operator '+' should be on a new line --- maven-core/src/main/java/org/apache/maven/ReactorReader.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/ReactorReader.java b/maven-core/src/main/java/org/apache/maven/ReactorReader.java index 9df233084d3b..7799667face0 100644 --- a/maven-core/src/main/java/org/apache/maven/ReactorReader.java +++ b/maven-core/src/main/java/org/apache/maven/ReactorReader.java @@ -267,8 +267,8 @@ private boolean isPackagedArtifactUpToDate( MavenProject project, File packagedA if ( outputFileLastModified > artifactLastModified ) { LOGGER.warn( - "Packaged artifact for {} is not up-to-date compared to the build output directory; " + - "file {} is more recent than {}.", + "Packaged artifact for {} is not up-to-date compared to the build output directory; " + + "file {} is more recent than {}.", project.getArtifactId(), relativizeOutputFile( outputFile ), relativizeOutputFile( packagedArtifactFile.toPath() ) );