Pergunta

Pode alguém ponto me a um bom tutorial para fazer e usar um repositório local com Ivy? (Por favor, não me aponte para os docs Ivy, os tutoriais são bastante confuso)

Eu preciso fazer um repositório local para incluir arquivos .jar que não são necessariamente disponíveis através dos repositórios Maven público.

Foi útil?

Solução

Criação de um repositório hera local é para a frente, o perito não é necessária. Aqui está um exemplo de publicação de alguns arquivos de texto usando hera como um programa autônomo.

Eu tenho 3 arquivos que deseja publicar:

src/English.txt
src/Spanish.txt
src/Irish.txt

O arquivo hera src / ivy.xml detalha o nome do módulo e uma lista dos artefatos que está sendo publicado. (Índice Release)

<ivy-module version="2.0">
  <info organisation="myorg" module="hello"/>
  <publications>
    <artifact name="English" ext="txt" type="doc"/>
    <artifact name="Irish" ext="txt" type="doc"/>
    <artifact name="Spanish" ext="txt" type="doc"/>
  </publications>
</ivy-module>

Você também vai precisar de arquivo uma hera configurações para dizer hera onde o repositório está localizado

<ivysettings>
    <property name="repo.dir" value=".../repo"/>
    <settings defaultResolver="internal"/>
    <resolvers>
        <filesystem name="internal">
            <ivy pattern="${repo.dir}/[module]/ivy-[revision].xml" />
            <artifact pattern="${repo.dir}/[module]/[artifact]-[revision].[ext]" />
        </filesystem>
    </resolvers>
</ivysettings>

hera Finalmente correr para publicar a versão lançada 1.0:

java -jar $IVY -settings config/ivysettings.xml \
        -ivy src/ivy.xml \
        -publish internal \
        -publishpattern "src/[artifact].[ext]" \
        -revision 1.0 \
        -status release \
        -overwrite 

Observe o padrão de publicar. Diz hera onde os arquivos a serem publicados estão localizados.

Adicionado: Publicação de dentro ANT

<target name="publish" depends="clean,package" description="Publish this build into repository">
    <ivy:publish pubrevision="${pub.version}" status="${pub.status}" resolver="${pub.resolver}" >
        <artifacts pattern="${build.dir}/dist/[artifact].[ext]"/>
    </ivy:publish>
</target>

Outras dicas

Não sei se você estiver usando SVN, se este for o caso esta ajuda pode:

http://code.google.com/p/ivysvn/

O que você pode querer olhar fazendo é criar um repositório maven privada, seja em sua máquina local, ou na sua intranet. Em seguida, implantar esses recursos não-públicos para o repositório usando Maven. integra hera com repositórios Maven, assim você será capaz de puxe esses recursos durante tempo de compilação.

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