我正在尝试使用Apache Jersey构建一个restful服务器。我正在Eclipse Indigo中开发,并使用Ivy对这个Ivy进行依赖管理。xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!--=========================================================================-->
<!--
-->
<!--=========================================================================-->
<ivy-module version="2.2">
<info organisation="com.mypackage" module="mymodule"/>
<dependencies>
<dependency org="com.sun.jersey" name="jersey-servlet" rev="1.12"/>
</dependencies>
</ivy-module>
这解决了从ant调用ivy的问题,但是从IvyDE我得到了这个错误
Some projects fail to be resolved
Impossible to resolve dependencies of com.mypackage#mymodule;working@Samsung-Windows
unresolved dependency: org.jboss.weld#weld-spi;1.1.4.Final: not found
unresolved dependency: javax.annotation#jsr250-api;${jsr250.api.version}: not found
unresolved dependency: org.jboss.weld#weld-api;1.1.4.Final: not found
unresolved dependency: javax.inject#javax.inject;${atinject.api.version}: not found
unresolved dependency: org.jboss.spec.javax.interceptor#jboss-interceptors-api_1.1_spec;${interceptor.api.version}: not found
对我来说,${atinject.api.version}看起来好像在某处没有正确解析变量。
我对常春藤的了解很肤浅,所以没有什么好的想法。
IvyDE和ant都使用相同的ivysettings。xml文件(至少我认为是这样)。
<?xml version="1.0" encoding="UTF-8"?>
<!--=========================================================================-->
<!--=========================================================================-->
<ivysettings>
<settings defaultResolver="ibiblio"/>
<resolvers>
<ibiblio name="ibiblio" m2compatible="true"/>
<ibiblio name="maven2" m2compatible="true"/>
<ibiblio name="java-net-maven1" root="http://download.java.net/maven/1" pattern="${java.net.maven.pattern}" m2compatible="false"/>
<ibiblio name="java-net-maven2" root="http://download.java.net/maven/2/" m2compatible="true"/>
</resolvers>
</ivysettings>
任何方向都可以。
提前多谢了。
编辑:添加Build.xml的一部分
虽然输出声明:
[ivy:configure] :: Apache Ivy 2.3.0-rc1 - 20120416000235 :: http://ant.apache.org/ivy/ ::
这是build.xml:
<?xml version="1.0"?>
<project name="IvyTest" default="ivy.retrieve" xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
IvyTest
</description>
<!--=====================================================================-->
<!-- Properties -->
<!--=====================================================================-->
<!-- General properties. -->
<property name="bin" location="bin" />
<property name="lib" location="lib" />
<property name="lib.ivy" location="${lib}/ivy-managed" />
<property name="ivy.version" value="2.2.0" />
<property name="ivy.home" location="${bin}/apache-ivy-${ivy.version}" />
<available property="ivy.installed" file="${ivy.home}/ivy-${ivy.version}.jar" />
<property name="ant.build.javac.source" value="1.7" />
<property name="ant.build.javac.target" value="1.7" />
<!--=====================================================================-->
<!-- Targets: Ivy -->
<!--=====================================================================-->
<!--============================ ivy.download ===========================-->
<target name="ivy.download" unless="ivy.installed">
<mkdir dir="${ivy.home}"/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" dest="${ivy.home}/ivy-${ivy.version}.jar" usetimestamp="true"/>
</target>
<!--============================ ivy.init ===============================-->
<target name="ivy.init" depends="ivy.download">
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.home}/ivy-${ivy.version}.jar"/>
</target>
<!--============================ ivy.resolve ============================-->
<target name="ivy.resolve" description="Resolve dependencies with Ivy" depends="ivy.configure">
<ivy:resolve />
</target>
<!--============================ ivy.retrieve ===========================-->
<target name="ivy.retrieve" description="Retrieve dependencies with Ivy" depends="ivy.configure">
<ivy:retrieve log="verbose" pattern="${lib.ivy}/[artifact]-[revision].[ext]" type="jar,bundle" sync="true"/>
</target>
<!--============================ ivy.configure ==========================-->
<target name="ivy.configure" description="Configure Ivy settings file" depends="ivy.init">
<ivy:configure file="ivysettings.xml"/>
</target>
<!--============================ ivy.clean ==============================-->
<target name="ivy.clean" description="Cleans the Ivy cache" depends="ivy.init">
<ivy:cleancache />
</target>
</project>
作为原始问题的更新:
我也有这种情况,我可以使用蚂蚁解析
在控制台上解决,但IvyDe(在Eclipse 4.2下)给我错误“无法解决依赖关系[...]”
通过这篇文章,我成功地编辑了IvyDE的设置(工作区首选项-
ivy.home=${user.home}/.ant
ivy.jar.dir=${ivy.home}/lib
ivy.jar.file=${ivy.jar.dir}/ivy.jar
从现在开始,一切都很好。
默认情况下,ivy将从Maven Central下载依赖项,因此除非您使用自己的Maven存储库管理器,否则您不需要ivy设置文件。我已经说过,声明以下一项对我来说很好:
<ivysettings>
<settings defaultResolver="central"/>
<resolvers>
<ibiblio name="central" m2compatible="true"/>
</resolvers>
</ivysettings>
请注意,它比您的示例简单得多。旧的 java.net 存储库不再真正使用,其大部分(如果不是全部)内容已迁移到Maven Central。
最后是如何编写ivy.xml来获取我正在使用的库的最新版本。例如,我正在使用jgraph.jar、commons-codec-1.6.jar等,有人能演示一下如何在ivy.xml文件中编写代码来获取这些文件的最新版本吗?这些都在maven中央存储库中可用,我可以通过ivy.xml连接到它吗?如果是,怎么做?
我刚刚使用apache ant设置了我的第一个项目,ivy作为依赖项管理器。它工作得很好!但是有一件事我无法释怀。因为我有几个使用slf4j的依赖项,所以存在版本不匹配的冲突。所以我在ivy.xml中定义了一个conflict标签来强制某个版本(本例中是1.5.6)。使用eclipse插件IvyIDE运行Ivy resolve不会出错。但是当使用我的ant构建文件来构建我的应用程序时,我得到了一个
我的定义如下: 我的存储库中有两个文件: http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0-ivy.xml http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0.jar 当我下定决心时,艾薇似乎找不到我的描述。我试着
我遇到了一件奇怪的事。我用常春藤检索标签把罐子放在某处。如果我编写如下代码: 它工作正常。但是如果我添加如下内容: 它会抛出“无法解析依赖关系”。有什么建议吗?谢了。
我目前有一个私有的Java项目,我正在努力使其成型,以供其他开发人员使用。我尝试做的一件事是让Ant自己下载像JUnit、PMD和FindBugs这样的东西所需要的JAR,这样开发人员就不必自己安装它了。因此,我已经卸载了所有这些内容的RPM包(以确保我使用的是Ivy下载的版本),并且Ivy可以很好地下载JUnit相关的JAR文件。然而,我有两个(可能相关的)问题: 1)如果为任务输入,则会收到警
问题内容: 我正在尝试使用Ant,Ivy和JUnit进行一个简单的(?)测试项目。基本思想是Ivy将下载junit.jar,然后Ant将使用它。 请注意,junit jar位于类路径上,因为否则(classpath在junit任务中没有元素),我会看到“ 的必须包含(如果不在Ant自己的类路径中)”。另外,下面给出的类在中。 但是,当我尝试ant test以下操作时,我看到: test: 所以我猜