Опубликованные образцы артефактов в Плюще - PullRequest
3 голосов
/ 05 июля 2011

Когда я разрешаю артефакты из своего репозитория (например, файловой системы), я использую два шаблона артефактов:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision]-[type]s.[ext]"/>

Первый предназначен для jar-файлов, а второй - для источников или других типов артефактов. Я бы хотел публиковать артефакты таким же образом, но я не знаю, как.

Используя только вышеприведенные шаблоны, задача публикации, кажется, рассматривает только первую, таким образом удаляя тип. Если несколько артефактов имеют одинаковое имя и расширение, они будут перезаписаны.

Если я просто использую второй шаблон, то для jar-артефактов получается $ {artifact} - $ {revision} -jars.jar, что действительно ужасно.

Наконец, представляется возможным иметь в шаблонах дополнительные детали, такие как:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision](-[type]s).[ext]"/>

Но часть - [type] опускается, только если тип является нулевым или пустым, и я хотел бы, чтобы тип оставался "jar", и в этом случае часть не опускается.

Так есть ли другой способ?

Ответы [ 3 ]

1 голос
/ 31 января 2013

Не совсем решение, но немного лучше:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"/>
1 голос
/ 05 июля 2011

Почему вы не используете ivy.xml файлы для артефактов?Вам нужно создать ivy.xml и поместить их в папку вашего модуля, рядом с jar файлами.ivy.xml пример:

<ivy-module version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="com.organisation" module="foo" revision="1.0"/>
    <publications>
        <artifact name="foo"/>
        <artifact name="foo-sources" type="source" ext="zip"/>
    </publications>
</ivy-module>

Затем вы должны определить шаблон плюща в своем преобразователе:

<ivy pattern="${location}/[organisation]/[module]/[revision]/ivy.xml"/>

Теперь, если вы используете <dependency org="com.organisation" name="foo" rev="1.0"/>, вы получите все артефакты, описанные в ivy.xml,Существует способ для выбора только необходимых артефактов.

0 голосов
/ 22 июня 2015

Я боролся с тем же. Я нашел решение, вы можете использовать:

   [artifact](-[classifier]).[ext]

-classifier будет нулевым / пустым на jar для источников / javadoc-jars, которые он содержит -sources / -javadoc.jar

Я знаю, что это было давно, но я нашел этот вопрос в Google. Так что для любого будущего человека это будет полезно, я думаю.

...