Eu recebo o seguinte aviso:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
O que isto significa?
Basta definir includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Se você precisar usar a javac
-tarefa várias vezes, considere usar PreSetDef
para definir sua própria javac
-tarefa que sempre define includeantruntime="false"
.
Em http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Isso é causado por uma falha de funcionalidade introduzida no Ant 1.8. Basta adicionar um atributo com esse nome à tarefa javac, configurá-lo como false e esquecer que isso já aconteceu.
Em http://ant.apache.org/manual/Tasks/javac.html :
Se as bibliotecas de tempo de execução Ant devem ser incluídas no caminho de classe; o padrão é yes, a menos que build.sysclasspath esteja configurado. Geralmente, é melhor definir isso como false, para que o comportamento do script não seja sensível ao ambiente em que é executado.
Como o @Daniel Kutik mencionou,
presetdef
é uma boa opção. Especialmente se alguém estiver trabalhando em um projeto com muitosbuild.xml
arquivos que não podem ou preferem não editar (por exemplo, arquivos de terceiros).Para usar
presetdef
, adicione estas linhas no seubuild.xml
arquivo de nível superior :Agora todas as
javac
tarefas subseqüentes serão herdadas essencialmenteincludeantruntime="false"
. Se seus projetos realmente precisam de bibliotecas ant runtime, você pode adicioná-los explicitamente aos arquivos de compilação OU ao conjuntoincludeantruntime="true"
. Este último também se livra dos avisos.As
javac
tarefas subsequentes ainda podem explicitamente alterar isso, se desejado, por exemplo:Eu recomendo contra o uso
ANT_OPTS
. Funciona, mas derrota o objetivo do aviso. O aviso informa que a construção de uma pessoa pode se comportar de maneira diferente em outro sistema. O usoANT_OPTS
torna isso ainda mais provável, porque agora todo sistema precisa usarANT_OPTS
da mesma maneira. Além disso,ANT_OPTS
aplicar-se-á globalmente, suprimindo os avisos à vontade em todos os seus projetosfonte
presetdef
truque semelhante pode ser feito para trabalhar com tarefas Ant não integradas? Eu tentei fazer issoscalac
, mas como osbuild.xml
arquivos inferiores precisam definir manualmente ascalac
tarefa, eles substituem o que eu definir no nível superior.Chet Hosey escreveu uma boa explicação aqui :
fonte
A resposta de Daniel funciona perfeitamente. Aqui está um trecho de amostra que eu adicionei ao meu build.xml:
fonte
Se você gosta de mim, trabalhe na linha de comando, a resposta rápida está sendo executada
E, em seguida, execute seu script ant novamente.
fonte
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Use
<property name="build.sysclasspath" value="last"/>
no seu arquivo build.xmlPara mais detalhes, procure
includeAntRuntime
em Ant javacOutros valores possíveis podem ser encontrados aqui
fonte
eu enfrentei o mesmo, eu check-in no programa e recurso. houve uma atualização de instalação para o jdk1.8 que não é compatível com a minha configuração antiga (jdk1.6.0) para ant no eclipse. Eu instalo essa atualização. No momento, meu projeto de formiga é construir sucesso.
Experimente, espero que isso seja útil.
fonte