У меня странная проблема, когда в моей задаче публикации отлично работает публикация нескольких артефактов, присутствующих в одном ivy.xml, в хранилище, но содержимое этих артефактов одинаково.Короче говоря, ivy публикует несколько артефактов с разными именами, как в теге publish ivy.xml, но с одинаковым содержанием в каждом из них.Ниже приводится история того, что я сделал:
ppm-ivy.xml
<ivy-module version="2.0">
<info organisation="ppm" module="ppm"/>
<configurations>
<conf name="internal" description="found within JP repositories" />
</configurations>
<publications>
<artifact name="ppm" type="jar" ext="jar"/>
<artifact name="xbeancomponent" type="jar" ext="jar"/>
</publications>
<dependencies>
<dependency org="junit" name="junit" rev="latest.integration" conf="internal-> *"/>
<dependency org="qpid" name="qpid-client" rev="${qpidVersion}" conf="internal-> *"/>
<dependency org="guice" name="guice" rev="${guiceVersion}" conf="internal-> *"/>
</dependencies>
</ivy-module>
build.xml
<target name="publishPPM" description="publish merlin service to shared repo with ivy">
<ivy:resolve settingsRef="2" file="ppm-ivy.xml" revision="${ppmVersion}" type="jar" />
<ivy:publish settingsRef="2" resolver="publish" srcivypattern="ppm-ivy.xml" organisation="ppm" module="ppm" revision="${ppmVersion}" pubrevision="${ppmVersion}" forcedeliver="true" status="release" overwrite="true">
<artifacts pattern="${srcRoot}/tmp/jars/[module].[ext]" />
</ivy:publish>
</target>
Мои банки, созданные приложением
ppm- $ {ppmversion} .jar
xbeancomponent - $ {ppmversion} .jar
находятся в $ {srcRoot} / tmp / jars
В распознавателе я использую svnkit, предоставленный Google
..
..
..
<typedef name="svn" classname="fm.last.ivy.plugins.svnresolver.SvnResolver"/>
<resolvers>
<svn name="publish" repositoryRoot="http://subversion.myrepo.com/svn/repos/sharedRepo/trunk/ivyRepository" userName="myuser" userPassword="mypass" binaryDiff="false">
<artifact pattern="[organisation]/jars/[revision]/[artifact]-[revision].[ext]"/>
</svn>
..
..
..
Проблемы:
1. Проблема с настройкой вышев том, что когда я запускаю задачу publishPPM, она заменяет мой файл ppm-ivy.xml актуальными версиями, которые мне не нужны.Это нормально, если он пишет этот файл в SVN (что не делает), но не в моем исходном коде, который фиксируется в SVN.поэтому я попытался удалить атрибут forcedeliver = "true" (я действительно не знаю, что эта задача) из задачи ivy: publish, которая помогла, но я получил ожидаемый вариант внутреннего @ .. вместо 1.2.0 Моя новая задача в build.xml:
<target name="publishPPM" description="publish merlin service to shared repo with ivy">
<ivy:resolve settingsRef="2" file="ppm-ivy.xml" revision="${ppmVersion}" type="jar" />
<ivy:publish settingsRef="2" resolver="publish" srcivypattern="ppm-ivy.xml" organisation="ppm" module="ppm" revision="${ppmVersion}" pubrevision="${ppmVersion}" status="release" overwrite="true">
<artifacts pattern="${srcRoot}/tmp/jars/[module].[ext]" />
</ivy:publish>
</target>
То, что я сделал для решения этой проблемы, было в информационном теге в ppm-ivy.xml. Я добавил атрибут ревизии, чтобы мой ppm-ivy.xml выглядел следующим образом:
<ivy-module version="2.0">
<info organisation="ppm" module="ppm" revision="${ppmVersion}"/>
<configurations>
<conf name="internal" description="found within JP repositories" />
</configurations>
<publications>
<artifact name="ppm" type="jar" ext="jar"/>
<artifact name="xbeancomponent" type="jar" ext="jar"/>
</publications>
<dependencies>
<dependency org="junit" name="junit" rev="latest.integration" conf="internal-> *"/>
<dependency org="qpid" name="qpid-client" rev="${qpidVersion}" conf="internal-> *"/>
<dependency org="guice" name="guice" rev="${guiceVersion}" conf="internal-> *"/>
</dependencies>
</ivy-module>
Теперь он публикует оба файла в репозиторий, но проблема заключается в том, что xbeancomponent.jar является точной копией ppm.jar, просто имя другое.Не могли бы вы мне помочь?