Dateiverwaltung für die WebBox
ulrich
2020-11-17 2e303f595176362f72c6bd77281dd0b470df5861
src/java/de/uhilger/filecms/api/CompileService.java
@@ -35,6 +35,8 @@
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import org.apache.commons.io.FileUtils;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
/**
 *
@@ -42,6 +44,33 @@
public class CompileService extends Api {
  
  private static final Logger logger = Logger.getLogger(CompileService.class.getName());
  public String antBuild(String relPath) {
    File targetDir = getTargetDir(relPath); // App-Ordner
    StringBuilder sb = new StringBuilder();
    sb.append("Ant build ist noch nicht implementiert.");
    sb.append("<br/>");
    sb.append("targetDir: ");
    sb.append(targetDir.getAbsolutePath());
    File buildFile = new File(targetDir, "build.xml");
    Project p = new Project();
    //p.setName("FileCms Build");
    FileCmsBuildListener listener = new FileCmsBuildListener();
    p.addBuildListener(listener);
    p.setUserProperty("ant.file", buildFile.getAbsolutePath());
    p.init();
    ProjectHelper helper = ProjectHelper.getProjectHelper();
    p.addReference("ant.projectHelper", helper);
    helper.parse(p, buildFile);
    p.executeTarget(p.getDefaultTarget());
    sb.append("<br/>");
    sb.append(listener.getOutput());
    return sb.toString();
  }
  
  /**
   * Annahme: relPath zeigt auf einen Ordner, in dem ein build-Ordner die 
@@ -196,7 +225,7 @@
  }
  private final Iterable<String> buildOptions(File targetDir) {
      String cbase = getCatalinaBase();
      String cbase = getCatalinaBase(getServletContext());
      File lib = new File(cbase, "lib");
      String cp = "";
      cp = buildCPFromDir(cp, lib);