You are viewing a plain text version of this content. The canonical link for it is here.
Posted to easyant-commits@incubator.apache.org by jl...@apache.org on 2012/10/18 19:59:52 UTC
svn commit: r1399823 -
/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java
Author: jlboudart
Date: Thu Oct 18 19:59:52 2012
New Revision: 1399823
URL: http://svn.apache.org/viewvc?rev=1399823&view=rev
Log:
Be less aggressive when filtering targets, invoke resolve before publishing to build scope repository
Modified:
incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java
Modified: incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java?rev=1399823&r1=1399822&r2=1399823&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java (original)
+++ incubator/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java Thu Oct 18 19:59:52 2012
@@ -37,6 +37,7 @@ import org.apache.easyant.core.ant.liste
import org.apache.easyant.core.ivy.IvyInstanceHelper;
import org.apache.ivy.ant.IvyAntSettings;
import org.apache.ivy.ant.IvyPublish;
+import org.apache.ivy.ant.IvyResolve;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.Location;
@@ -194,15 +195,22 @@ public class SubModule extends Task {
ProjectUtils.injectTargetIntoExtensionPoint(subModule, helper);
- filterTargets(subModule);
+ Set<String> targetsToRun = filterTargets(subModule);
printExecutingTargetMsg(subModule);
- if (targets != null && !targets.isEmpty()) {
- subModule.executeTargets(targets);
+ if (targetsToRun != null && !targetsToRun.isEmpty()) {
+ subModule.executeTargets(new TargetList(targetsToRun));
if (useBuildRepository) {
-
File artifactsDir = subModule.resolveFile(subModule.getProperty("target.artifacts"));
if (artifactsDir.isDirectory()) {
+ IvyResolve ivyResolve = new IvyResolve();
+ ivyResolve.setFile(file);
+ ivyResolve.setProject(subModule);
+ ivyResolve.setOwningTarget(getOwningTarget());
+ ivyResolve.setLocation(getLocation());
+ ivyResolve.setTaskName("publish-buildscoped-repository");
+ ivyResolve.setSettingsRef(IvyInstanceHelper.buildProjectIvyReference(subModule));
+ ivyResolve.execute();
// this property set by LoadModule task when it
// configures the build repo
@@ -214,7 +222,8 @@ public class SubModule extends Task {
ivyPublish.setSettingsRef(IvyInstanceHelper.buildProjectIvyReference(subModule));
ivyPublish.setResolver(resolver);
// TODO: this should be more flexible!
- ivyPublish.setArtifactspattern("${target.artifacts}/[artifact](-[classifier]).[ext]");
+ ivyPublish.setArtifactspattern(artifactsDir.getAbsolutePath()
+ + "/[artifact](-[classifier]).[ext]");
// not all sub-build targets will generate ivy
// artifacts. we don't want to fail
// a successful build just because there's nothing to
@@ -304,15 +313,19 @@ public class SubModule extends Task {
/**
* Filter the active set of targets to only those defined in the given project.
*/
- private void filterTargets(Project subProject) {
+ private Set<String> filterTargets(Project subProject) {
+ Set<String> filteredTargets = new HashSet<String>();
Set<?> keys = subProject.getTargets().keySet();
+
for (Iterator<String> it = targets.iterator(); it.hasNext();) {
String target = it.next();
- if (!keys.contains(target) && target.trim().length() > 0) {
+ if (keys.contains(target)) {
+ filteredTargets.add(target);
+ } else {
subProject.log("Skipping undefined target '" + target + "'", Project.MSG_VERBOSE);
- it.remove();
}
}
+ return filteredTargets;
}
/**
@@ -656,5 +669,11 @@ public class SubModule extends Task {
for (String target : targets)
add(target);
}
+
+ public TargetList(Set<String> targets) {
+ for (String target : targets) {
+ add(target);
+ }
+ }
}
}