即使我已经阅读了教程,我仍然无法理解ivy的conf
功能。想想我有两个依赖;ivy的conf属性的错误使用
- guava.jar
- foeu.jar
我需要foeu.jar
在编译的时候只,但我需要guava.jar
不仅在编译的时候,而且在运行时。为了实现这些需求,我在ivy.xml中写道:
<configurations defaultconfmapping="runtime->compile">
<conf name="default"
visibility="public" />
<conf name="compile"
visibility="private"/>
<conf name="runtime"
extends="compile"
visibility="public"/>
</configurations>
and,dependency as;
<dependencies>
<dependency org="Google Guava" name="guava-17.0" rev="17.0"
conf="runtime->default"/>
<dependency org="Foeu" name="foeu" rev="5.5.1"
conf="compile->default"/>
</dependencies>
真的,conf
理解了我的错。有什么问题,我该怎么办?
UPDATE:
在build.xml中,我使用它喜欢;
ivy-initialization;
<target name="init-ivy" description="Initialize ivy requirements">
<property name="ivy.dep.file" value="${script.directory}/ivy/ivy.xml" />
<ivy:configure file="${script.directory}/ivy/ivyconf.xml"/>
<ivy:resolve/>
<ivy:cachepath pathid="ivy.compile.path" conf="compile" />
<ivy:cachepath pathid="ivy.runtime.path" conf="runtime" />
</target>
compile;
<target name="compile" depends="init-ivy" description="Compiling Java source codes with external libraries">
<javac compiler="javac1.7"
destdir="${class.directory}"
source="1.7"
target="1.7"
failonerror="true"
includeantruntime="false">
<src path="${source.directory}" />
<classpath refid="ivy.compile.path" />
</javac>
</target>
罐子
<target name="create-jar" depends="compile" description="Creating jar files">
<jar destfile="${build.directory}/jar/${ant.project.name}.jar"
basedir="${class.directory}">
<manifest>
<attribute name="Main-Class" value="dataScience.management.Management"/>
</manifest>
</jar>
</target>
运行
<target name="runtime" depends="create-jar" description="Running Java based application">
<java jar="${jar.directory}/${ant.project.name}.jar"
fork="yes"
maxmemory="400m">
<jvmarg value="-ea"/>
<classpath refid="ivy.runtime.path" />
</java>
</target>
即使你说我变了,蚂蚁发出同样的问题,在线程'异常“主要” java.lang.NoClassDefFoundError:COM /谷歌/普通/基/试图运行我的番石榴项目Preconditions'。 – Hevan 2014-08-27 13:52:38
听起来像使用的类路径存在问题(没有像配置那样填充),或者使用的本地jar不是您认为的版本。为什么?该类存在于Maven Central jar副本中。请参阅:http://search.maven.org/#search|ga|1|g%3A%22com.google.guava%22%20AND%20a%3A%22guava%22%20AND%20v%3A%2217.0%22 %20于是%20fc%3A%22com.google.common.base.Preconditions%22,你能告诉你如何使用您的build.xml配置更多的细节? – 2014-08-27 14:02:34
我用build.xml编辑了问题。 – Hevan 2014-08-27 14:10:03