mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-13 12:02:20 +00:00
[JENKINS-8711] Post build action deploy to maven repository can fail using "private maven repository" option
This commit is contained in:
1 parent
a19afb186b
commit
7dc2652349
1 file changed
+38
-2
@@ -30,16 +30,22 @@ import hudson.maven.reporters.MavenAbstractArtifactRecord;
|
||||
import hudson.model.AbstractBuild;
|
||||
import hudson.model.AbstractProject;
|
||||
import hudson.model.BuildListener;
|
||||
import hudson.model.Hudson;
|
||||
import hudson.model.Result;
|
||||
import hudson.model.TaskListener;
|
||||
import hudson.tasks.BuildStepDescriptor;
|
||||
import hudson.tasks.BuildStepMonitor;
|
||||
import hudson.tasks.Publisher;
|
||||
import hudson.tasks.Recorder;
|
||||
import hudson.tasks.Maven.MavenInstallation;
|
||||
import hudson.tasks.Maven.ProjectWithMaven;
|
||||
import hudson.util.FormValidation;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
@@ -115,7 +121,7 @@ public class RedeployPublisher extends Recorder {
|
||||
listener.getLogger().println("Deploying artifacts to "+url);
|
||||
try {
|
||||
|
||||
MavenEmbedder embedder = MavenUtil.createEmbedder(listener,build);
|
||||
MavenEmbedder embedder = createEmbedder(listener,build);
|
||||
ArtifactRepositoryLayout layout =
|
||||
(ArtifactRepositoryLayout) embedder.lookup( ArtifactRepositoryLayout.ROLE,"default");
|
||||
ArtifactRepositoryFactory factory =
|
||||
@@ -140,7 +146,37 @@ public class RedeployPublisher extends Recorder {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* copy from MavenUtil but here we have to ignore localRepo path and setting as thoses paths comes
|
||||
* from the remote node and can not exist in master see http://issues.jenkins-ci.org/browse/JENKINS-8711
|
||||
*
|
||||
*/
|
||||
private MavenEmbedder createEmbedder(TaskListener listener, AbstractBuild<?,?> build) throws MavenEmbedderException, IOException, InterruptedException {
|
||||
MavenInstallation m=null;
|
||||
File settingsLoc = null;
|
||||
String profiles = null;
|
||||
Properties systemProperties = null;
|
||||
String privateRepository = null;
|
||||
|
||||
AbstractProject project = build.getProject();
|
||||
|
||||
if (project instanceof ProjectWithMaven) {
|
||||
m = ((ProjectWithMaven) project).inferMavenInstallation().forNode(Hudson.getInstance(),listener);
|
||||
}
|
||||
if (project instanceof MavenModuleSet) {
|
||||
profiles = ((MavenModuleSet) project).getProfiles();
|
||||
systemProperties = ((MavenModuleSet) project).getMavenProperties();
|
||||
}
|
||||
|
||||
return MavenUtil.createEmbedder(new MavenEmbedderRequest(listener,
|
||||
m!=null?m.getHomeDir():null,
|
||||
profiles,
|
||||
systemProperties,
|
||||
privateRepository,
|
||||
settingsLoc ));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Obtains the {@link MavenAbstractArtifactRecord} that we'll work on.
|
||||
|
||||
Reference in new issue
Block a user