Using a custom repository with Apache Ivy, no resolver found

冷暖自知 提交于 2019-11-29 02:46:56

Ivyroundup is designed around the packager resolver in ivy. This resolver is incredibly clever, demonstrates the true power of ivy, but the bulk of the world uses Maven repositories to host their software. Fact is soon Maven Central will contain nearly 90% of the world's Java open source components.

Enabling Maven repositories

Thankfully, ivy fully understands Maven repositories, meaning we can use ivy as a client and let very good products like Nexus host the repository. Here's the settings file that enables Maven Central:

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

I would highly recommend you consider setting up you own local instance of Nexus (Or Artifactory, or Archiva...). You can then cache Maven central artifacts (more efficient), search for software components and upload and host artifacts which cannot be downloaded, due to license restrictions (JDBC jars).

Enabling a local repository manager also uses the ibiblio resolver as follows:

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

Searching Maven Central (New ivy support features)

You're looking for the Spring 3.0.6 release? It's already in Maven Central:

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

The Spring core artifact details are here:

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

The search page now conveniently gives you both the Maven and ivy client declaration to copy into your build:

<dependency org="org.springframework" name="spring-core" rev="3.0.6.RELEASE" >
    <artifact name="spring-core" type="jar" />
</dependency>

Your update target should invoke ivy:resolve task after 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>

you must have something to tell whats the default resolver, like, <conf defaultResolver="default" />

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!