You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Dempsey K Bullock <de...@us.ibm.com> on 2007/06/21 01:20:53 UTC
Creating a Zip File Programmatically
I'm fairly new to extending Ant using custom tasks. I need to create a
Zip Task programmatically in order to package a set of directories. So
far, I've come up with the following. Basically, I'm creating a Zip Task.
Then I'm adding ZipFileSets to the Zip Task. Everything blows up then I
try to execute.
Can anyone see any mistakes or point me in the right direction? Thanks in
advance!
Zip zip = new Zip();
zip.setDestFile(new File("C:/archive_temp/" + moduleFolderName
+ "App.zip"));
Iterator zipIterator = dependencySet.iterator();
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(new File("C:/copy_temp"));
while (zipIterator.hasNext()) {
String modulePath = workspacePath + "\\" + zipIterator.next();
log("Adding Dependency Folder: " + modulePath);
ZipFileSet zipFileSet = new ZipFileSet();
zipFileSet.setDir(new File(modulePath));
zipFileSet.setDirMode("true");
zipFileSet.setupDirectoryScanner(ds, this.getProject());
log(String.valueOf(zipFileSet.hasDirModeBeenSet()));
zip.addZipfileset(zipFileSet);
}
try {
zip.executeMain();
} catch (RuntimeException e) {
e.printStackTrace();
}
The following is the resulting error stack:
java.lang.NullPointerException
at org.apache.tools.ant.types.AbstractFileSet.setupDirectoryScanner(
AbstractFileSet.java:382)
at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(
AbstractFileSet.java:356)
at org.apache.tools.ant.types.ZipFileSet.getDirectoryScanner(
ZipFileSet.java:192)
at org.apache.tools.ant.taskdefs.Zip.grabResources(Zip.java:949)
at org.apache.tools.ant.taskdefs.Zip.getResourcesToAdd(Zip.java:799)
at org.apache.tools.ant.taskdefs.Zip.executeMain(Zip.java:425)
at gov.dcgsa.build.util.ScaDependantUtil.execute(ScaDependantUtil.java:174
)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(
DefaultExecutor.java:40)
at
org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(
EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(
InternalAntRunner.java:423)
at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(
InternalAntRunner.java:137)