2010-02-17 10 views
5

en ivy: publisher el patrón de entregas predeterminado es $ {ivy.distrib.dir}/[type] s/[artifact] - [revision] (- [clasificador]). [ext]Cómo funciona ivy: publish use el atributo [clasificador]

Intento establecer el clasificador en mi ivy.xml debajo agregando el atributo e: clasificador = "" al elemento.

Pero el [clasificador] no se establece? Cuando ivy: publish se ejecuta en mi archivo build.xml, parece estar vacío y, por lo tanto, no está incluido en el patrón de nombre de archivo.

Respuesta

5

Creo que he resuelto su problema.

Para que quede claro, es la resolución configurada que determina el nombre del archivo del repositorio y no la tarea publicar. Aquí está mi ejemplo, que utiliza dos atributos adicionales felicitación y autor en los patrones de artefactos y el nombre de hiedra:

<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> 

Los valores de los atributos adicionales están determinadas por el archivo ivy.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> 

Efectivamente cuando publicó los archivos de los valores de las variables de felicitación y autor estaban presentes:

$ 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

Creo que quieres el patrón como tal. Si el saludo no está definido, se quedará fuera.

[autor] - [artefacto] (- [saludo]) -.. [Revisión] [ext]

+0

Gracias su bastante correcto Voy a actualizar mi publicación –

1

que enfrentan el mismo problema y encontramos una manera de obtener el atributo extra en

mi ejemplo en el aspecto ivysettings.xml algo así como ...

<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> 

y en su archivo ivy.xml pongo el siguiente: ten en cuenta que lo que quería el valor de bienvenida que cada valor dinámico i publicar algo ($ {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> 

Aquí es donde está el truco vienen en -> En mi fichero de construcción donde yo llamo la hiedra: publico función, el siguiente atributo es necesario ajustar true (forcedeliver)

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

Eso es todo

2

que tenía un ingenio problema h

clasificador atributo no se permite aparecer en el elemento 'artefacto'

simplemente he añadido el espacio de nombres "extra" en mi declaración y era capaz de utilizar el clasificador.

<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> 
Cuestiones relacionadas