Виконання сценарію Ant із програми Java

Процедура виконання скрипта Ant:
  • спрямувати протоколювання виконання завдань у стандартну консоль;
  • спрямувати протоколювання виконання завдань в масив;
  • заповнити змінні скрипта Ant;
  • виконати вказане завдання;
  • вивести протокол виконання завдання в компонент на формі;

Текст програми на GitHub

  private boolean executeAntTask(String target) {
    boolean success = false;
    // спрямувати протоколювання виконання завдань у стандартну консоль
    DefaultLogger conlog = new DefaultLogger();
    conlog.setErrorPrintStream(System.err);
    conlog.setOutputPrintStream(System.out);
    conlog.setMessageOutputLevel(Project.MSG_INFO);
    // спрямувати протоколювання виконання завдань в масив
    DefaultLogger strlog = new DefaultLogger();
    ByteArrayOutputStream errb = new ByteArrayOutputStream();
    PrintStream errp = new PrintStream(errb);
    strlog.setErrorPrintStream(errp);
    ByteArrayOutputStream outb = new ByteArrayOutputStream();
    PrintStream outp = new PrintStream(outb);
    strlog.setOutputPrintStream(outp);
    strlog.setMessageOutputLevel(Project.MSG_INFO);
    // підготувати скрипт Ant до виконання завдань
    Project project = new Project();
    File buildfile = new File(buildname);
    project.setUserProperty("ant.file", buildfile.getAbsolutePath());
    // додати протоколювання виконання завдань у стандартну консоль
    project.addBuildListener(conlog);
    // протоколювання виконання завдань в масив
    project.addBuildListener(strlog);
    //
    try {
      // заповнення змінних скрипта Ant
      for (Entry m : map.entrySet()) {
        project.setUserProperty(m.getKey().toString(), m.getValue().toString());
      }
      project.fireBuildStarted();
      project.init();
      ProjectHelper helper = ProjectHelper.getProjectHelper();
      project.addReference("ant.projectHelper", helper);
      helper.parse(project, buildfile);
      // виконання вказаного завдання
      project.executeTarget(target);
      project.fireBuildFinished(null);
      success = true;
    } catch (BuildException buildException) {
      project.fireBuildFinished(buildException);
    }
    // виведення протоколу виконання завдання в компонент на формі
    jtLog.append(new String(outb.toByteArray()));
    jtLog.append(new String(errb.toByteArray()));
    return success;
  }
Advertisements

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: