При использовании собственного репозитория с Apache Ivy не найдено ни одного распознавателя - PullRequest
0 голосов
/ 06 сентября 2011

Похоже, что Apache ivy загружает артефакты только из http://mvnrepository.com/ и некоторых других мест, но все банки там устарели.

Поэтому я пытаюсь добавить собственный репозиторий для Ivy.Я использую хранилище Ivy RoundUp: http://code.google.com/p/ivyroundup/

Это моя конфигурация, но получаю ошибку:

build.xml:

<target name="update" depends="init-ivy" description="Download project dependencies">
    <!-- edited for brevity -->
    <ivy:settings file="ivysettings.xml" />
    <ivy:retrieve pattern="war/WEB-INF/lib/[artifact]-[revision].[ext]" />
    <!-- edited for brevity -->
</target>

ivy.xml:

<ivy-module version="2.0">
    <info organisation="org.apache" module="hello-ivy"/>
    <dependencies>
        <dependency org="org.springframework" name="spring" rev="3.0.6" conf="default->master"/>

    </dependencies>
</ivy-module>

ivysettings.xml:

<ivysettings>
    <resolvers>
        <packager name="roundup" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache">
            <ivy pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/ivy.xml"/>
            <artifact pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/packager.xml"/>
        </packager>
    </resolvers>
</ivysettings>

ошибка:

Buildfile: C:\Users\Jansu\workspace\HibernateSpring\build.xml
build:
deploywar:
      [war] Building war: C:\Users\Jansu\workspace\HibernateSpring\hibernate.war
     [copy] Copying 1 file to C:\apache-tomcat-7.0.20\webapps
download-ivy:
      [get] Getting: http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar
      [get] To: C:\Users\Jansu\.ant\lib\ivy-2.2.0.jar
      [get] Not modified - so not downloaded
init-ivy:
update:
[ivy:retrieve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: file = C:\Users\Jansu\workspace\HibernateSpring\ivysettings.xml
[ivy:retrieve] :: resolving dependencies :: org.apache#hello-ivy;working@Jansu-PC
[ivy:retrieve]  confs: [default]
[ivy:retrieve] :: resolution report :: resolve 110ms :: artifacts dl 0ms
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |   1   |   0   |   0   |   0   ||   0   |   0   |
    ---------------------------------------------------------------------
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      ::          UNRESOLVED DEPENDENCIES         ::
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      :: org.springframework#spring;3.0.6: no resolver found for org.springframework#spring: check your configuration
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] 
[ivy:retrieve] :::: ERRORS
[ivy:retrieve]  unknown resolver null
[ivy:retrieve]  no resolver found for org.springframework#spring: check your configuration
[ivy:retrieve] 
[ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED
C:\Users\Jansu\workspace\HibernateSpring\build.xml:177: impossible to resolve dependencies:
    resolve failed - see output for details

Total time: 2 seconds

Так что, похоже, он не находит мой преобразователь .Я настроил распознаватель так, как пользовательский репозиторий попросил: http://code.google.com/p/ivyroundup/wiki/HowToConfigureIvy

И вот список всех артефактов в этом репо, так что вы можете видеть, что там существует Spring 3.0.6: http://ivyroundup.googlecode.com/svn/trunk/repo/modules.xml

Есть предложения?Не стесняйтесь спрашивать больше информации.

РЕДАКТИРОВАТЬ:

build.properties:

ivy.install.version=2.2.0
ivy.home=${user.home}/.ant
ivy.jar.dir=${ivy.home}/lib
ivy.jar.file=${ivy.jar.dir}/ivy-${ivy.install.version}.jar

Ответы [ 3 ]

8 голосов
/ 09 сентября 2011

Ivyroundup разработан для распознавателя пакетов в ivy. Этот решатель невероятно умный, демонстрирует истинную силу плюща, но большая часть мира использует репозитории Maven для размещения своего программного обеспечения. Факт скоро Maven Central будет содержать почти 90% мировых компонентов Java с открытым исходным кодом .

Включение репозиториев Maven

К счастью, ivy полностью понимает репозитории Maven, что означает, что мы можем использовать ivy в качестве клиента и позволить очень хорошим продуктам, таким как Nexus , размещать репозиторий. Вот файл настроек, который включает Maven Central:

<ivysettings>
  <settings defaultResolver='central'/>
  <resolvers>
    <ibiblio name='central' m2compatible='true'/>
  </resolvers>
</ivysettings>

Я бы настоятельно рекомендовал вам создать собственный локальный экземпляр Nexus (или Artifactory или Archiva ...). Затем вы можете кэшировать центральные артефакты Maven (более эффективные), искать программные компоненты и загружать и размещать артефакты, которые не могут быть загружены из-за лицензионных ограничений (jar JDBC).

При включении менеджера локального репозитория также используется распознаватель ibiblio следующим образом:

<ivysettings>
  <settings defaultResolver='nexus'/>
  <resolvers>
    <ibiblio name='nexus' m2compatible='true' root='https://nexus.mydomain.com:8081/nexus/content/groups/central/' />
  </resolvers>
</ivysettings>

Поиск в Maven Central (новые функции поддержки ivy)

Вы ищете версию Spring 3.0.6? Это уже в Maven Central:

http://search.maven.org/#search|ga|1|g%3A%22org.springframework%22%20AND%20v%3A%223.0.6.RELEASE%22

Подробности об основном артефакте Spring:

http://search.maven.org/#artifactdetails|org.springframework|spring-core|3.0.6.RELEASE|jar

На странице поиска теперь удобно указывать декларации клиента Maven и ivy для копирования в вашу сборку:

<dependency org="org.springframework" name="spring-core" rev="3.0.6.RELEASE" >
    <artifact name="spring-core" type="jar" />
</dependency>
0 голосов
/ 01 ноября 2012

у вас должно быть что-то, чтобы сказать, что такое распознаватель по умолчанию, например,

0 голосов
/ 06 сентября 2011

Ваша цель обновления должна вызывать ivy: решить задачу после ivy: settings.

<target name="update" depends="init-ivy" description="Download project dependencies">
  <ivy:settings file="ivysettings.xml" />
  <ivy:resolve conf="default" />
  <ivy:retrieve pattern="war/WEB-INF/lib/[artifact]-[revision].[ext]" />
</target>
...