You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/03/28 15:36:38 UTC
[maven] 05/15: Make ReactorReader aware of possible previous built
artifacts
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-4660
in repository https://gitbox.apache.org/repos/asf/maven.git
commit d29b7155614d2a5126d527c7c3e426f55c547667
Author: Maarten Mulders <ma...@infosupport.com>
AuthorDate: Fri Feb 14 12:51:16 2020 +0100
Make ReactorReader aware of possible previous built artifacts
---
.../main/java/org/apache/maven/ReactorReader.java | 21 +++++++++++++++++++--
1 file changed, 19 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 f840cb5..7c52ff2 100644
--- a/maven-core/src/main/java/org/apache/maven/ReactorReader.java
+++ b/maven-core/src/main/java/org/apache/maven/ReactorReader.java
@@ -157,12 +157,18 @@ class ReactorReader
}
Artifact projectArtifact = findMatchingArtifact( project, artifact );
+ File packagedArtifactFile = determinePreviouslyPackagedArtifactFile( project, projectArtifact );
if ( hasArtifactFileFromPackagePhase( projectArtifact ) )
{
return projectArtifact.getFile();
}
- else if ( !hasBeenPackaged( project ) )
+ // Check whether an earlier Maven run might have produced an artifact that is still on disk.
+ else if ( packagedArtifactFile != null && packagedArtifactFile.exists() )
+ {
+ return packagedArtifactFile;
+ }
+ else if ( !hasBeenPackagedDuringThisSession( project ) )
{
// fallback to loose class files only if artifacts haven't been packaged yet
// and only for plain old jars. Not war files, not ear files, not anything else.
@@ -189,12 +195,23 @@ class ReactorReader
return null;
}
+ private File determinePreviouslyPackagedArtifactFile( MavenProject project, Artifact artifact )
+ {
+ if ( artifact == null )
+ {
+ return null;
+ }
+
+ String fileName = String.format( "%s.%s", project.getBuild().getFinalName(), artifact.getExtension() );
+ return new File( project.getBuild().getDirectory(), fileName );
+ }
+
private boolean hasArtifactFileFromPackagePhase( Artifact projectArtifact )
{
return projectArtifact != null && projectArtifact.getFile() != null && projectArtifact.getFile().exists();
}
- private boolean hasBeenPackaged( MavenProject project )
+ private boolean hasBeenPackagedDuringThisSession( MavenProject project )
{
return project.hasLifecyclePhase( "package" ) || project.hasLifecyclePhase( "install" )
|| project.hasLifecyclePhase( "deploy" );