O que poderia causar a mensagem de erro "Target‘1’não existe no projeto‘xxx’. executar Ant no Windows?

StackOverflow https://stackoverflow.com/questions/979272

  •  13-09-2019
  •  | 
  •  

Pergunta

Eu estou usando ant.bat (em Ant 1.7.1) para construir a toda-alvo em um arquivo build.xml, no Windows 2003 Server. (Eu tenho substituído "xxx" na mensagem de erro para o nome do projeto no arquivo.)

Ele cria com êxito, mas, em seguida, termina com:

2009-06-10 17:26:03 | all:
2009-06-10 17:26:03 | 
2009-06-10 17:26:03 | BUILD FAILED
2009-06-10 17:26:03 | Target "1" does not exist in the project "xxx". 

... e retorna com um código de erro diferente de zero.

Eu procurei build.xml em vão para qualquer coisa que possa levar a este erro. (Não há meta "1", é claro, nem quaisquer dependências que pode resolver "1".)

Eu estou esperando que alguém lá fora, pode lembrar de ter visto isso. Eu não esperar que alguém para depurar o XML para mim, mas uma pesquisa no Google apareceu http://simile.mit.edu/mail/ReadMsg?listId=9&msgId=2735 , que contém "Eu encontrei um fio de e-mail sobre este problema e vontade repetição ".. Eu gostaria de poder encontrar esse segmento.

Atualizar - aqui está a linha de comando:

D:/build/toolchain/noarch/ant-1.7.1/bin/ant.bat all  -DBRANCH_NAME="main" -DBUILD_NUMBER="66675" -DCHANGE_NUMBER="1061789" -DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1 -DGOBUILD_VICLIB_ROOT=d:/build/ob/bora-66675/compcache//viclib/ob-65655/windows -DGOBUILD_VIMBASE_ROOT=d:/build/ob/bora-66675/compcache//vimbase/ob-64494/windows -DOBJDIR="beta" -DPRODUCT_BUILD_NUMBER="82" -DPUBLISH_DIR="d:/build/ob/bora-66675/publish" -DRELTYPE="beta" -DREMOTE_COPY_SCRIPT="D:/build/toolchain/win32/python-2.5/python.exe D:/build/gobuild/script/gobuildc.py bora-66675"'

Esperemos que seja de alguma ajuda.

Foi útil?

Solução

Você tem metas que dependem de "1"? Talvez devido a um erro de digitação?

<target name="SomeTarget" depends="1">
   ....
</target>

Update: Você explicou (parafraseado) que a mensagem de erro foi resultado de linha de comando (parcial)

-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1

Apesar de haver um espaço entre esses dois definir instruções, está sendo tratada como este:

-DGOBUILD_AUTO_COMPONENTS=-DGOBUILD_OFFICIAL_BUILD=1

porque algo deverá seguir '='. E parece que o segundo '=' está sendo tratado como um espaço em branco, talvez porque ANT é confuso. Eu não esperava por isso. A maneira correta de fazer o que você quer fazer é:

-DGOBUILD_AUTO_COMPONENTS="" -DGOBUILD_OFFICIAL_BUILD=1

Dessa forma, algo segue o sinal de igual e ANT não vai ficar confuso.

Outras dicas

você pode adicionar a linha de comando que você está usando. pode ser que formiga concorda com você que não há meta '1', mas que acredita que você está passando um em.

Esta postagem me ajudou a resolver esse erro e queria compartilhar a minha versão do problema.

Target "ouvinte" não existe no "nulo" do projeto.

ANT irá utilizar um ANT_ARGS variável de ambiente se estiver definido. Eu estava usando a opção -listener e definir esta opção no meu envvar do Windows, ANT_ARGS. Quando eu colei as opções para o Env Var:

-listener org.apache.tools.ant.listener.Log4jListener -lib D:\apache-ant-1.7.1\lib

Eu estava faltando o sinal 'menos' na frente da opção 'ouvinte'.

Este é semelhante ao problema acima, mas estava escondido pelo fato de que eu usei o ANT_ARGS envvar.

Ya ganso :-) Você mudou o projeto para "xxx" no título, mas deixou-o como "vireporting" na saída de erro.

Assim o gato é fora do saco. Você pode também fazer a nossa vida mais fácil e postar o XML desde a nossa capacidade de ajudá-lo (a depuração psíquica) é muito limitada. Se você quiser, higienizar o XML você postar (melhor do que você higienizado o original, espero).

E o seu comentário ( 'Não há meta '1'') faz sentido uma vez que é o que formiga está lhe dizendo. O que você pode ter feito está, inadvertidamente, criou um dependência na esse alvo inexistente.

Acontece que esta mensagem de erro é o resultado de "-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1" na linha de comando. Eu acho que ter nada depois do '=' em que a opção -D confunde Ant. (Como uma experiência, eu mudei "-DGOBUILD_OFFICIAL_BUILD=1" para "-DGOBUILD_OFFICIAL_BUILD=2" nesta linha de comando programaticamente gerado ea mensagem de erro alterado para "Target "2" does not exist in the project "xxx".")

A remoção "-DGOBUILD_AUTO_COMPONENTS=" eliminado a falha de construção.

Se alguém pode explicar claramente porque Ant emite uma mensagem tão estranho erro neste caso (ou talvez por isso não é estranho se olharmos para isso corretamente), eu vou aceitar sua resposta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top