当前位置: 首页 > 面试题库 >

将自定义存储库与Apache Ivy一起使用,找不到解析器

廖君昊
2023-03-14
问题内容

看来Apache
ivy仅从http://mvnrepository.com/和其他几个地方下载了工件,但是所有jar都已经过时了。

所以我试图为常春藤添加自定义存储库。我正在使用存储库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

问题答案:

Ivyroundup是围绕常春藤中的打包程序解析器设计的。这个解析器非常聪明,展示了常春藤的真正威力,但是全世界大多数人都使用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中央工件(效率更高),搜索软件组件以及由于许可证限制(JDBC jar)而无法下载的上载和宿主工件。

启用本地存储库管理器还使用 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(新的常春藤支持功能)

您在寻找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>


 类似资料:
  • 我是Gradle/Groovy的新手,所以我可能遗漏了一些显而易见的东西。你能帮忙吗? 我们使用Ivy进行依赖管理。我正在试用Gradle,希望与我们现有的常春藤基础设施集成。通常情况下,这应该是可能的,但我们的常春藤的布局有点特别,而且...我不能让它工作。 这是因为我们的常春藤在布局时考虑了组织的url,例如: 我现在试着把这句话翻译成Gradle: 这当然是失败的,因为“[organizat

  • 这类似于在无法使用两个带有Spring Boot/Spring数据Neo4j的Neo4j实例中讨论的内容,但我没有两个数据库。我从git repo下载了spring data neo4j示例java应用程序,希望执行动态查询,而不是通过存储库接口执行静态查询。 我面临一个空事务管理器的问题。 这是我的界面: 以下是我的自定义回购建议: 以下是我的配置: 因为我只有一个TransactionMana

  • 在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS

  • 我有通用的基本存储库定义如下: 我的ICustomRepostory存储库接口定义如下: 现在当我使用基本存储库时: 当我在我的服务类中自动连线 OrdeRepository 时,它给了我编译错误: 引起:org.springframework.beans.factory.BeanCreationExc的:错误创建bean的名称'OrderRepostion'定义abc.example.在@Ena

  • 问题内容: Jenkins中建立一个托管在bitbucket上的项目时,我将在URL字段中输入什么? 该存储库是私有的。 问题答案: 我对Jenkins并不熟悉,但是Bitbucket允许您通过https克隆git存储库,https可以接受密码作为url的一部分,如下所示:

  • 项目配置为使用多个MongoTemplate Mongo Ref传递为 问题:我需要访问MongoTemplate,它是类似的标准存储库。 例如,如果正在将接口扩展为 MyRepoCustomImpl 问题:相反,难道没有任何方法可以让要使用的MongoTemplate根据它扩展到的Repo自动注入或解析吗?