2010-02-17 16 views
5

w bluszczu: wydawca domyślny parametr dostaw to $ {ivy.distrib.dir}/[type] s/[artefakt] - [wersja] (- [klasyfikator]). [ext]W jaki sposób ivy: publish używa atrybutu [klasyfikatora]

Próbuję ustawić klasyfikator w moim pliku ivy.xml pod dodając atrybut e: classifier = "" do elementu.

Ale [klasyfikator] nie jest ustawiony? Kiedy bluszcz: publikuje działa w moim pliku build.xml, wydaje się pusty i tym samym nie jest zawarty we wzorcu nazwy pliku.

Odpowiedz

5

Chyba wymyśliłem twój problem.

Dla jasności, to skonfigurowany przelicznik określa nazwę pliku repozytorium, a nie zadanie publikować. Oto mój przykład, który wykorzystuje dwa dodatkowe atrybuty życzeniami i autor we wzorach artefaktów i bluszcz Nazwa pliku:

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

Wartości dodatkowych atrybutów są określone przez ivy.xml pliku:

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

Rzeczywiście, kiedy opublikowane pliki wartości powitanie i autor tagi obecne:

$ 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

Wierzę, że chcesz taki wzór. Jeśli powitanie nie zostanie zdefiniowane, zostanie pominięte.

[autora] - [artefakt] (- [pozdrowienia].) -. [Wersja] [ext]

+0

Dziękuję bardzo poprawne Zaktualizuję moje ogłoszenie –

1

I w obliczu tego samego problemu i znaleźliśmy sposób, aby uzyskać dodatkowy atrybut w

mój przykład w czymś ivysettings.xml wyglądać ...

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

aw pliku ivy.xml umieścić następujący: należy pamiętać, że chciałem wartość życzeniami być dynamiczny i za każdym razem wartość publikują coś ($ {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> 

Tu trick przyjść -> W moim pliku build gdzie nazywam bluszcz: publikować funkcja następujący atrybut muszą być ustawione true (forcedeliver)

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

to wszystko

2

miałem wit problemu h

Atrybut klasyfikatora nie może pojawić się w elemencie „artefakt”

po prostu dodaje „ekstra” nazw w moim oświadczeniu, był w stanie wykorzystać klasyfikator.

<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> 
Powiązane problemy