in src/java/org/apache/ivy/ant/IvyPublish.java [230:333]
public void doExecute() throws BuildException {
Ivy ivy = getIvyInstance();
IvySettings settings = ivy.getSettings();
organisation = getProperty(organisation, settings, "ivy.organisation");
module = getProperty(module, settings, "ivy.module");
revision = getProperty(revision, settings, "ivy.revision");
pubBranch = getProperty(pubBranch, settings, "ivy.deliver.branch");
pubRevision = getProperty(pubRevision, settings, "ivy.deliver.revision");
if (artifactspattern.isEmpty()) {
String p = getProperty(null, settings, "ivy.publish.src.artifacts.pattern");
if (p != null) {
artifactspattern.add(p);
}
}
if (srcivypattern == null) {
srcivypattern = getArtifactspattern();
}
status = getProperty(status, settings, "ivy.status");
if (organisation == null) {
throw new BuildException("no organisation provided for ivy publish task: "
+ "It can either be set explicitly via the attribute 'organisation' "
+ "or via 'ivy.organisation' property or a prior call to <resolve/>");
}
if (module == null) {
throw new BuildException("no module name provided for ivy publish task: "
+ "It can either be set explicitly via the attribute 'module' "
+ "or via 'ivy.module' property or a prior call to <resolve/>");
}
if (revision == null) {
throw new BuildException("no module revision provided for ivy publish task: "
+ "It can either be set explicitly via the attribute 'revision' "
+ "or via 'ivy.revision' property or a prior call to <resolve/>");
}
if (artifactspattern.isEmpty()) {
throw new BuildException(
"no artifacts pattern: either provide it through parameter or "
+ "through ivy.publish.src.artifacts.pattern property");
}
if (publishResolverName == null) {
throw new BuildException(
"no publish deliver name: please provide it through parameter 'resolver'");
}
if ("working".equals(revision)) {
revision = Ivy.getWorkingRevision();
}
Date pubdate = getPubDate(this.pubdate, new Date());
if (pubRevision == null) {
if (revision.startsWith("working@")) {
pubRevision = DateUtil.format(pubdate);
} else {
pubRevision = revision;
}
}
if (status == null) {
throw new BuildException("no status provided: either provide it as parameter "
+ "or through the ivy.status.default property");
}
ModuleRevisionId mrid = ModuleRevisionId.newInstance(organisation, module, revision);
try {
File ivyFile = getProject().resolveFile(
IvyPatternHelper.substitute(srcivypattern, organisation, module, pubRevision,
"ivy", "ivy", "xml"));
if (publishivy && (!ivyFile.exists() || forcedeliver)) {
IvyDeliver deliver = new IvyDeliver();
deliver.setSettingsRef(getSettingsRef());
deliver.setTaskName(getTaskName());
deliver.setProject(getProject());
deliver.setDeliverpattern(getSrcivypattern());
deliver.setDelivertarget(deliverTarget);
deliver.setDeliveryList(deliveryList);
deliver.setModule(getModule());
deliver.setOrganisation(getOrganisation());
deliver.setPubdate(DateUtil.format(pubdate));
deliver.setPubrevision(getPubrevision());
deliver.setPubbranch(getPubbranch());
deliver.setRevision(getRevision());
deliver.setStatus(getStatus());
deliver.setValidate(doValidate(settings));
deliver.setReplacedynamicrev(isReplacedynamicrev());
deliver.setMerge(merge);
deliver.setConf(conf);
deliver.execute();
}
ivy.publish(
mrid,
artifactspattern,
publishResolverName,
new PublishOptions().setPubrevision(getPubrevision()).setPubbranch(getPubbranch())
.setSrcIvyPattern(publishivy ? srcivypattern : null).setStatus(getStatus())
.setPubdate(pubdate)
.setExtraArtifacts(artifacts.toArray(new Artifact[artifacts.size()]))
.setValidate(doValidate(settings)).setOverwrite(overwrite)
.setUpdate(update).setMerge(merge).setWarnOnMissing(warnonmissing)
.setHaltOnMissing(haltonmissing).setConfs(splitToArray(conf)));
} catch (Exception e) {
if (e instanceof BuildException) {
throw (BuildException) e;
}
throw new BuildException("impossible to publish artifacts for " + mrid + ": " + e, e);
}
}