Ant построено на InteliiJ Community Edition, нет ошибок компилятора

У меня есть существующий проект, который я хочу построить в IntelliJ Community Edition 11.1.4, работающем на Ubuntu 12.04.1 LTS

В окне Ant Build я добавил проект build.xml, нажав кнопку + в верхнем левом углу окна и перейдя к файлу. Задачи Ant, связанные с файлом сборки, перечислены, и я нажимаю зеленую кнопку воспроизведения, чтобы запустить конструкцию Ant, которая начинается, как ожидалось.

Я ожидал увидеть ошибки компилятора, и IntelliJ CE представит эти ошибки компилятора и позвольте мне перейти к (повреждающему) источнику, дважды щелкнув по ошибкам в окне "Сообщения".

Вместо этого в окне сообщений отображается следующая ошибка, которая при двойном щелчке меня приводит к задаче javac Ant в файле build.xml.

build.xml:389: Compile failed; see the compiler error output for details.

Это отличный совет, и я очень хочу следовать ему, но я не могу, потому что ошибка компилятора не отображается нигде в окне Сообщения. Следующее и предыдущее сообщение не переходят к фактической ошибке компилятора.

Я хочу знать, как видеть сообщения об ошибках компилятора в IntelliJ, запустив конструкцию Ant.

Я попытался добавить флаг -v в поле командной строки Ant: в свойствах выполнения. Это не имело никакого отношения к поведению.

Затем я попробовал сортировку с Ant 1,8 до Ant 1.7. на этот раз я видел изменения в поведении. сборка не запускается вообще, и я получаю следующую ошибку https://gist.github.com/4073149 на терминале.

Задача javac Ant выглядит так.

<target name="compile-only" depends="">
    <stopwatch name="Compilation"/>
<javac destdir="${build.classes.dir}" debug="on" deprecation="off" 
       classpathref="base.path" excludes="/filtering/**/**">
    <src path="${src.dir}"/>
    <src path="${build.autogen.dir}"/>
</javac>
<!-- Copy all resource files to the output dir -->
<copy todir="${build.classes.dir}">
    <fileset dir="${src.dir}">
        <include name="**/*.properties"/>
        <include name="**/*.gif"/>
        <include name="**/*.png"/>
        <include name="**/*.jpg"/>
        <include name="**/*.svg"/>
        <include name="**/*.jpeg"/>
        <exclude name="**/.svn"/>
    </fileset>
</copy>
<stopwatch name="Compilation" action="total"/>

Ответ 1

IDEA просто печатает Ant вывод. Попробуйте переключить вывод из древовидного представления на вид обычного текста, используя соответствующую кнопку слева от панели сообщений:

Plain Text View

Если вывод содержит ошибки, вы можете увидеть их там.

Кроме того, гораздо быстрее и проще использовать IDEA при условии инкрементной компиляции (Build | Make).

Ответ 2

При использовании простого (не дерева) вывода для ant IntelliJ использует file (line,col): error msg для ошибок javac. Но анализатор представления ошибок понимает только формат file:line: error msg.

Вы можете настроить его в классе PlainTextView из antIntegration.jar http://grepcode.com/file/repository.grepcode.com/java/ext/com.jetbrains/intellij-idea/10.0/com/intellij/lang/ant/config/execution/PlainTextView.java#98

Я просто изменил метод addJavacMessage на следующий и перекомпилировал класс `` `java

 public void addJavacMessage(AntMessage message, String url) {
    final VirtualFile file = message.getFile();
    if (message.getLine() > 0) {
      final StringBuilder builder = StringBuilderSpinAllocator.alloc();
      try {

        if (file != null) {
          ApplicationManager.getApplication().runReadAction(new Runnable() {
            public void run() {
              String presentableUrl = file.getPresentableUrl();
              builder.append(presentableUrl);
//              builder.append(' ');
            }
          });
        }
        else if (url != null) {
          builder.append(url);
//          builder.append(' ');
        }
//        builder.append('(');
        builder.append(':');
        builder.append(message.getLine());
        builder.append(':');
        builder.append(' ');
//        builder.append(message.getColumn());
//        builder.append(")");
        print(builder.toString(), ProcessOutputTypes.STDOUT);
      }
      finally {
        StringBuilderSpinAllocator.dispose(builder);
      }
    }
    print(message.getText(), ProcessOutputTypes.STDOUT);
  }

  public void addException(AntMessage exception, boolean showFullTrace) {
    String text = exception.getText();
    showFullTrace = false;
    if (!showFullTrace) {
      int index = text.indexOf("\r\n");
      if (index != -1) {
        text = text.substring(0, index) + "\n";
      }
    }
    print(text, ProcessOutputTypes.STDOUT);
  }

`` `

И теперь у меня есть интерактивные ссылки в режиме вывода "обычного текста" инструмента ant. Обратите внимание, что "режим дерева" показывает строку и столбцы правильно - я использовал IDEA 13 CE.

Было бы неплохо, если бы кто-нибудь создал запрос на загрузку Intellij в отношении этой проблемы.