2010-02-17 15 views
5

in edera: editore il deliverivypattern predefinito è $ {ivy.distrib.dir}/[tipo] s/[artefatto] - [revisione] (- [classificatore]). [ext]Come fa ivy: publish usa l'attributo [classifier]

Cerco di impostare il classificatore nel mio ivy.xml sotto aggiungendo attributo e: classifier = "" all'elemento.

Ma il [classificatore] non viene impostato? Quando ivy: publish viene eseguito nel mio file build.xml, sembra essere vuoto e quindi non incluso nel modello del nome del file.

risposta

5

Penso di aver capito il problema.

Giusto per essere chiari, è il resolver configurato che determina il nome file del repository e non l'attività pubblica. Ecco il mio esempio, che utilizza due attributi extra auguri e autore nei modelli artefatto e edera filename:

<ivysettings> 
    <property name="repo.dir" value="${ivy.basedir}/build/repo"/> 
    <property name="ivy.checksums" value=""/> <!-- Suppress the generation of checksums --> 

    <settings defaultResolver="internal"/> 

    <resolvers> 
     <filesystem name="internal"> 
      <ivy pattern="${repo.dir}/[module]/[author]-ivy(-[greeting])-[revision].xml" /> 
      <artifact pattern="${repo.dir}/[module]/[author]-[artifact]-[greeting]-[revision].[ext]" /> 
     </filesystem> 
    </resolvers> 
</ivysettings> 

I valori degli attributi extra sono determinati dal file diivy.xml:

<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra"> 
    <info organisation="myorg" module="hello" e:author="Mark"/> 
    <publications> 
    <artifact name="English" ext="txt" type="doc" e:greeting="hello"/> 
    <artifact name="Irish" ext="txt" type="doc" e:greeting="dia_dhuit"/> 
    <artifact name="Spanish" ext="txt" type="doc" e:greeting="Hola"/> 
    </publications> 
</ivy-module> 

abbastanza sicuro, quando ho pubblicato i file i valori del saluto e autore tag presenti:

$ find build -type f 
build/repo/hello/Mark-English-hello-1.0.txt 
build/repo/hello/Mark-Irish-dia_dhuit-1.0.txt 
build/repo/hello/Mark-Spanish-Hola-1.0.txt 
build/repo/hello/Mark-ivy-1.0.xml 
1

Credo che tu voglia il modello così. Se il messaggio di saluto non è definito, verrà omesso.

[Autore] - [artefatto] (- [saluto]) -.. [Revisione] [ext]

+0

Grazie abbastanza corretto aggiornerò il mio post –

1

Ho affrontato lo stesso problema e abbiamo trovato un modo per ottenere l'attributo in più in

il mio esempio nel ivysettings.xml aspetto qualcosa di simile ...

<resolvers> 
<filesystem name="internal"> 
    <ivy pattern="${repo.dir}/[module]/[author]-ivy(-[greeting])-[revision].xml" /> 
    <artifact pattern="${repo.dir}/[module]/[author]-[artifact]-[greeting]-[revision].[ext]" /> 
</filesystem> 

e nel file ivy.xml ho messo il seguente: si prega di notare che ho voluto il valore di saluto di essere valore di ogni dinamica i pubblicare qualcosa ($ {someValue})

<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra"> 
<info organisation="myorg" module="hello" e:author="Mark"/> 
<publications> 
    <artifact name="English" ext="txt" type="doc" e:greeting="${someValue}"/> 
</publications> 

Qui è dove il trucco sono disponibili in -> Nel mio file di generazione in cui io chiamo l'edera: pubblicare la funzione, il seguente attributo devono essere impostato true (forcedeliver)

<ivy:publish resolver="@{ivy.resolver}" 
     pubrevision="@{publish.revision}" 
     status="@{status}" 
     forcedeliver="true" 
     overwrite="@{overwrite}" 
     update="true" /> 

Questo è tutto

2

ho avuto un problema di spirito h

attributo classificatore non è permesso di apparire in elemento 'artefatto'

ho semplicemente aggiunto lo spazio dei nomi "extra" nel mio dichiarazione e stato in grado di utilizzare il classificatore.

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd" 
     xmlns:e="http://ant.apache.org/ivy/extra"> 

    <dependency org="orphans" name="vaadin-timeline-cval" rev="2.0"> 
     <artifact name="vaadin-timeline-cval" e:classifier="1.3.1" ext="jar"/> 
    </dependency> 
Problemi correlati