Выходные данные компиляции Ant Javac - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь скомпилировать java-файлы из java-программы, используя org.apache.tools.ant.taskdefs.Javac, и распечатать их вывод на экран.

См. Приведенный ниже фрагмент кода для справки:

Javac javaCompile = (Javac) webServiceProject.createTask("javac");
javaCompile.setSrcdir("D:\\Java\\src");
javaCompile.setDestdir("D:\\Java\\classes");
try{
    javaCompile.execute();
}catch (BuildException buildException){
    FacesMessage message = new FacesMessage(buildException.getMessage());
    message.setSeverity(FacesMessage.SEVERITY_FATAL);
    FacesContext.getCurrentInstance().addMessage(null, message);
}

Когда я компилирую файлы с помощью вышеуказанного кода и если существует какая-либо ошибка компиляции, я получаю сообщение "Compile failed; see the compiler error output for details.".

Я не знаю, как получить ошибку компиляции и показать ее как вывод на экран.Кто-нибудь может подсказать, как его найти?

Ответы [ 3 ]

0 голосов
/ 16 сентября 2011

Попробуйте изменить настройку build.compiler. У Ant были проблемы с поиском указанного мной компилятора "org.eclipse.jdt.core.JDTCompilerAdapter" - изменение его на "современный" позволило мне скомпилировать.

Это было сложно отследить. Я не уверен, почему не было вывода.

0 голосов
/ 20 июня 2012

Приведенный ниже код добился цели, и это вернуло мне ошибку компилятора.

Javac javaCompile = (Javac) webServiceProject.createTask("javac");
javaCompile.createCompilerArg().setValue("-Xstdout");
String filePath = basePath + "resources" + File.separator
        + "errorlog.log";
javaCompile.createCompilerArg().setFile(new File(filePath));
javaCompile.setNowarn(true);
0 голосов
/ 10 мая 2011

Игнорирование вопроса о том, должен ли компилировать код в приложении JSF ...

Я считаю, что Ant отправляет выходные данные компиляции в регистратор.Таким образом, чтобы заполучить его, вам нужно настроить регистратор так, чтобы он отправлял соответствующие события журнала в файл ... или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...