Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
[JENKINS-8383] Fixed parent fingerprinting for relativePath style
- Loading branch information
|
@@ -81,18 +81,11 @@ public boolean preBuild(MavenBuildProxy build, MavenProject pom, BuildListener l |
|
|
* Mojos perform different dependency resolution, so we need to check this for each mojo. |
|
|
*/ |
|
|
public boolean postExecute(MavenBuildProxy build, MavenProject pom, MojoInfo mojo, BuildListener listener, Throwable error) throws InterruptedException, IOException { |
|
|
MavenProject parent = pom.getParent(); |
|
|
while (parent != null) { |
|
|
// Parent Artifact contains no acual file, so we resolve against the local repository |
|
|
Artifact parentArtifact = parent.getProjectBuildingRequest().getLocalRepository().find(parent.getArtifact()); |
|
|
record(parentArtifact, used); |
|
|
parent = parent.getParent(); |
|
|
} |
|
|
|
|
|
recordParents(pom); |
|
|
record(pom.getArtifacts(),used); |
|
|
record(pom.getArtifact(),produced); |
|
|
record(pom.getAttachedArtifacts(),produced); |
|
|
record(pom.getGroupId(),pom.getFile(),produced); |
|
|
record(pom.getGroupId() + ":" + pom.getArtifactId(),pom.getFile(),produced); |
|
|
|
|
|
return true; |
|
|
} |
|
@@ -127,6 +120,27 @@ public Void call(MavenBuild build) throws IOException, InterruptedException { |
|
|
return true; |
|
|
} |
|
|
|
|
|
private void recordParents(MavenProject pom) throws IOException, InterruptedException { |
|
|
MavenProject parent = pom.getParent(); |
|
|
while (parent != null) { |
|
|
File parentFile = parent.getFile(); |
|
|
if (parentFile == null) { |
|
|
// Parent Artifact contains no acual file, so we resolve against |
|
|
// the local repository |
|
|
parentFile = parent.getProjectBuildingRequest() |
|
|
.getLocalRepository().find(parent.getArtifact()) |
|
|
.getFile(); |
|
|
} |
|
|
// we need to include the artifact Id for poms as well, otherwise a |
|
|
// project with the same groupId would override its parent's |
|
|
// fingerprint |
|
|
record(parent.getGroupId() + ":" + parent.getArtifactId(), |
|
|
parentFile, used); |
|
|
parent = parent.getParent(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void record(Collection<Artifact> artifacts, Map<String,String> record) throws IOException, InterruptedException { |
|
|
for (Artifact a : artifacts) |
|
|
record(a,record); |
|
|