Como obter o Apache Ant para reconhecer o Ivy

2

Estou tentando instalar o Apache Ivy, mas não consigo reconhecê-lo.

Por instruções de instalação do Apache Ivy , fiz o download do Ivy de osuosl.org Ivy archives , descompactou e copiou o arquivo .jar arquivo para onde ant deve ser capaz de vê-lo. No entanto, qualquer tentativa de construção dependente de herpes falha da seguinte forma:

$ ant
Buildfile: /home/ec2-user/ivy/apache-ivy-2.3.0/build.xml

init-ivy:
  [taskdef] Could not load definitions from resource org/apache/ivy/ant/antlib.xml. It could not be found.

retrieve-all:

BUILD FAILED
/home/ec2-user/ivy/apache-ivy-2.3.0/build.xml:55: Problem: failed to create task or type antlib:org.apache.ivy.ant:retrieve
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -/usr/share/ant/lib
        -/home/ec2-user/.ant/lib
        -a directory added on the command line with the -lib argument

Eu tenho caçado por aí, e todas as páginas que eu olho parecem concordar que eu só preciso "instalar o arquivo jar Ivy", mas isso não parece ajudar. Eu tentei:

  • Copiando ivy-2.3.0.jar para / usr / share / ant / lib e / ou ~ / .ant / lib
  • O mesmo, mas renomeá-lo como ivy.jar
  • Adicionando -lib /path/to/ivy-2.3.0.jar ao comando ant
  • Tudo isso no diretório ivy ou no diretório src / example / hello-ivy

Curiosamente, no diretório src / example / go-ivy, a execução de ant é bem-sucedida; mas isso não ajuda outras versões baseadas em hera a serem executadas.

Eu devo estar perdendo algo terrivelmente óbvio, mas não consigo ver o que é. Alguma idéia?

(Isso está em "Amazon Linux AMI release 2013.09")

    
por Steve 06.01.2014 / 21:13

2 respostas

1

Acabei de fazer a mesma pergunta na lista de usuários do Ivy, e recebi uma resposta: link . Acontece que eu simplesmente precisava executar o seguinte comando antes de invocar ant:

export ANT_HOME=/usr/share/ant/

Parece que, apesar de o ant sugerir colocar arquivos em / usr / share / ant / lib, ele não será exibido lá, a menos que você configure ANT_HOME.

    
por 17.02.2014 / 05:10
0

Eu respondi esta pergunta no Stackoverflow:

ivy não consegue resolver dependência incapaz de encontrar a causa . Estou incluindo inline abaixo:

ANT não pode encontrar o frasco de hera. Precisa ser colocado em um dos seguintes locais:

  • $ ANT_HOME / lib
  • $ HOME / .ant / lib

Ativando a hera

O Ivy é empacotado como antlib , portanto, para ativá-lo, você precisa fazer o seguinte

1) Declare o namespace ivy no topo do arquivo de compilação

<project ..... xmlns:ivy="antlib:org.apache.ivy.ant">

2) Inclua o frasco de hera em um dos diretórios da biblioteca de formigas

Sua mensagem de erro indica alguns dos possíveis locais para antlibs:

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -C:\Users\Simon\eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030\lib
        -C:\Users\Simon\.ant\lib
        -a directory added on the command line with the -lib argument

Nota:

A beleza de um antlib é que você não precisa executar o taskdef (é opcional se você quiser colocar o jar de hera em um local não padrão)

Como fazer o bootstrap de uma compilação

Embora a hera seja um subprojeto da ANT, por alguma razão inexplicável, a hera não é empacotada com a ANT ....

Eu normalmente incluo o seguinte destino em meus arquivos de compilação para configurar um novo ambiente:

<target name="bootstrap" description="Used to install the ivy task jar">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar"/>
</target>

Faz o download do frasco de hera da Maven Central.

Como todas as outras tarefas ANT podem ser baixadas posteriormente usando hera, poucas pessoas se opõem a esse pequeno problema no topo do arquivo de construção.

    
por 12.01.2014 / 23:18