Переопределить атрибут компилятора в задаче Ant javac - PullRequest
8 голосов
/ 25 октября 2008

Я пытаюсь переопределить атрибуты компилятора Ant через командную строку, чтобы все задачи javac использовали мой указанный компилятор. Проблема, с которой я столкнулся, заключается в том, что любая цель, которая устанавливает собственное значение для компилятора, переопределяет ту, которую я установил в строке команды. Итак, хотя я ввожу следующую команду.

ant -Dbuild.compiler=mycompiler  

Любая цель, которая имеет следующее, будет использовать современный компилятор вместо mycompiler из-за этого атрибута compiler = "modern"

<javac srcdir="."  
       destdir="${classes.dir}/core"  
       compiler="modern"  
       encoding="UTF-8">  
    <include name="org/**" />  
    <include name="com/**" />  
    <compilerarg line="${config.build.compilerarg}" />  
</javac>    

Есть ли способ переопределить это из командной строки, или я застрял при редактировании файла сборки?

1 Ответ

8 голосов
/ 25 октября 2008

Ant javac документация к заданию говорит:

Можно использовать разные компиляторы. Это можно указать либо установив глобальное свойство build.compiler, которое повлияет на все задачи во время сборки, либо установив атрибут компилятора, специфичный для текущей задачи. Допустимые значения для свойства build.compiler или атрибута компилятора:

Звучит так, как будто вы можете либо указать глобальное свойство build.compiler или установить определенный атрибут компилятора.

Итак, похоже, вам нужно изменить файл сборки и либо:

  1. удалить атрибут компилятора из вызовов javac и разрешить глобальная настройка build.compiler для каскад вниз

  2. изменить значения компилятора атрибут из жестко закодированной строки compiler = "modern" быть собственностью компилятор = "$ {javac.compiler}"

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