我正在使用Scala IDE 2.0.1和SBT 0.11.2从Akka 2.0.1开始.我的build.sbt看起来像这样:
name := "akka"
version := "0.1"
scalaVersion := "2.9.2"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies += "com.typesafe.akka" % "akka-actor" % "2.0.1"
Run Code Online (Sandbox Code Playgroud)
如你所见,没有什么了不起的.
现在,我如何告诉Eclipse将工件与源分类器一起用于akka-actor库?
在SBT中,我可以使用update-classifiers将源代码和Javadocs下载到Ivy存储库,但即使我在从sbteclipse插件运行eclipse命令之前执行此操作,Eclipse仍然不知道源代码.当然,我可以手动执行此操作,但这对于更多库来说不能很好地扩展.
我还尝试将IvyDE插件与deliver-local命令一起使用.虽然这集成了依赖关系管理,但它似乎对源代码没有帮助.
有线索吗?
编辑:这是从deliver-local生成的ivy.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="default" module="akka_2.9.2" revision="0.1" status="release" publication="20120506225613">
<description>
akka
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" …Run Code Online (Sandbox Code Playgroud) 我使用ivy和ivy eclipse插件来下载依赖项.效果很好.但是,我如何附加这些库的源代码,以便进入这些库?
我在Eclipse Kepler中创建了一个新的Dynamic Web Project,因为这是我第一次使用IvyDE,我将一些依赖项用于测试它.这是我的ivy.xml:
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="net.myorg"
module="mymodule"
status="integration">
</info>
<dependencies>
<dependency org="org.hibernate" name="hibernate-entitymanager" rev="4.2.3.Final"></dependency>
<dependency name="log4j" rev="1.2.17" org="log4j"></dependency>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
已解决的依赖项,我可以在项目库中看到它们.
但在此之后,我的项目开始发出警告:
Description Resource Path Location Type
Classpath entry org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=myproject&ivyXmlPath=ivy.xml&confs=*&acceptedTypes=jar%2Cbundle%2Cejb%2Cmaven-plugin&alphaOrder=false&resolveInWorkspace=true&retrievedClasspath=true&retrievedClasspathPattern=lib%2F%5Btype%5Ds%2F%5Bartifact%5D-%5Brevision%5D.%5Bext%5D&retrievedClasspathSync=true&retrievedClasspathTypes=* will not be exported or published. Runtime ClassNotFoundExceptions may result. myproject P/myproject Classpath Dependency Validator Message
Run Code Online (Sandbox Code Playgroud)
因此,如果我理解正确,Eclipse会警告我类路径中的IvyDE条目与构建项目中的资源不对应.我想这是预期的行为,如果是这样,有没有办法从项目中删除此警告,而不禁用每个Classpath Dependency Validator Message?
简介: Ivy正在下载比我预期更多的罐子,我不知道为什么.
详细信息: 我正在将我的项目从使用Maven Ant Tasks进行依赖管理转换为Ivy.
到目前为止,我已经完成了以下工作:
现在,当我在Eclipse中运行Ivy> Resolve时,我可以看到279个jar被下载到".ivy2\cache".这超过了Maven Ant Tasks之前下载的65个罐子.
为什么常春藤会让更多的罐子掉下来?据我所知,常春藤也在减少源和一些javadoc罐子.这解释了一些额外的罐子,但我最多认为常春藤应该下载195罐(65*3)而不是279.
我错过了什么或做错了什么?我很感激任何反馈和建议.
这是我的ivy.xml的内容
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="org.robbins"
module="FlashCardsWeb"
status="integration">
</info>
<dependencies>
<dependency org="org.apache.struts" name="struts2-core" rev="2.2.3"/>
<dependency org="org.apache.struts" name="struts2-spring-plugin" rev="2.2.3">
<exclude org="org.springframework" name="spring-web" />
<exclude org="org.springframework" name="spring-beans" />
<exclude org="org.springframework" name="spring-context" />
<exclude org="org.springframework" name="spring-core" />
</dependency>
<dependency org="org.springframework" name="spring-web" rev="3.0.5.RELEASE"/>
<dependency org="org.springframework" name="spring-beans" rev="3.0.5.RELEASE"/>
<dependency org="org.springframework" name="spring-context" rev="3.0.5.RELEASE"/>
<dependency org="org.springframework" name="spring-core" rev="3.0.5.RELEASE"/>
<dependency org="org.springframework" name="spring-jdbc" rev="3.0.5.RELEASE"/>
<dependency org="org.springframework" …Run Code Online (Sandbox Code Playgroud) 我想让Ivy同时获取log4j .jar和JavaDocs.现在,我走到了尽头.如果我在我的ivy.xml中使用它...
<dependency org="log4j" name="log4j" rev="1.2.16"/>
Run Code Online (Sandbox Code Playgroud)
...然后我得到.jar文件.但是当使用这个ivysettings.xml时......
<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings
defaultResolver="default"
defaultConflictManager="all" />
<resolvers>
<url name="default" m2compatible="true">
<artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="http://repo2.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</url>
</resolvers>
</ivysettings>
Run Code Online (Sandbox Code Playgroud)
...和这个ivy.xml ......
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="foo" module="bar"/>
<dependencies>
<dependency org="log4j" name="log4j" rev="1.2.16">
<artifact name="log4j" type="jar" ext="jar"/>
<artifact name="log4j" type="javadoc" ext="jar"/>
</dependency>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
...然后我收到此错误消息: java.lang.RuntimeException:模块log4j#log4j; 1.2.16的多个工件被检索到同一个文件!更新检索模式以修复此错误.
我在这里缺少什么?如何让Ivy解决JavaDoc和.jar文件?
编辑:感谢目前为止所有快速而详细的回复.这是我更新的ivy.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="foo" module="bar"/>
<configurations>
<conf name="default" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="master" visibility="public"/> …Run Code Online (Sandbox Code Playgroud) 我们目前正在使用MyEclipse在开发期间将项目部署到Tomcat.我们想转储MyEclipse并切换到WTP.我正在使用Eclipse 3.7.
我们的项目布局有一个"网络"项目和一个"模块"项目.
我希望能够让每个项目都有自己的常春藤文件,使用IvyDE声明其依赖关系,创建依赖于这些jar的Eclipse库,并将这些jar部署到WEB-INF/lib,并将每个项目的类部署到WEB -INF/classes中.
我已经尝试将'modules'项目声明为"Utility Module",并将其ivy.xml文件中的jar声明作为Deployment-WEB/INF/lib的部署,然后将'modules'项目添加到Deployment Assembly 'web'项目,但我得到的是'web'项目的WEB-INF/lib中名为'modules.jar'的jar,其中包含'modules'项目的jar(即 modules.jar) WEB-INF/lib目录.
是否有可能从应用程序结构部署WTP到我想要的部署布局,或者我必须将我的两个项目重组为一个?如果是这样,我该怎么做?
我一直在寻找解决问题的方法,但我遇到的所有其他帖子要么不起作用,要么与我的情况不符,所以希望有人可以给我一些见解.
我有一个我用ant构建的库,它输出2个jar文件,一个正常包含库的编译版本,另一个只包含源文件.
该库上传到我们的Nexus存储库,包装设置为jar.对于实际的jar文件,我将扩展名设置为jar并将分类器留空.对于源jar,我将分类器设置为jar的源和扩展.
无论我对我的ivy.xml文件做什么,我都无法下载源jar.基于我在其他地方读过的帖子,我尝试添加:
conf="*->default,sources"
Run Code Online (Sandbox Code Playgroud)
我的依赖,但后来我得到一个错误:
configuration not found in org#name;version: 'sources'
Run Code Online (Sandbox Code Playgroud)
所以这基本上是期望我的库将源定义为某个配置?我认为它只会发现存在另一个人工制品,其中分类器设置为存储库中的源.
任何人都可以通过我将我的库发布到Nexus的方式,或者我在Ivy文件中如何设置我的依赖声明,向我提出我可能做错的其他建议.
这是基本的Ivy.xml文件,我在这里定义了我对Nexus中放置的库的依赖.
<ivy-module version="2.0">
<info organisation="${ivy.organisation}" module="moduleName" />
<configurations>
<conf name="pda" description="moduleName for PDA"/>
<conf name="server" description="moduleName for server"/>
</configurations>
<dependencies>
<!-- Internal -->
<dependency name="utility" org="${ivy.organisation}" rev="latest.integration" conf="${ivy.configuration}"/>
<dependency name="myLib" org="my.org" rev="0.0.+"/>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
在回复下面的评论时,我的build.properties中的ivy.configuration属性设置为pda.对于Eclipse,我创建了一个属性文件,并将ivy.configuration设置为pda(然后在Eclipse中的Ivy设置中引用此属性文件).
我得到的错误信息是:
Some projects fail to be resolved
Impossible to resolve dependencies of ${ivy.organisation}#moduleName;working@host
unresolved dependency: my.org#myLib;0.0.+: configuration not found in my.org#myLib;0.0.0: 'sources'. It was required from ${ivy.organisation}#moduleName;working@host pda
Run Code Online (Sandbox Code Playgroud)
UPDATE 这是解析的ivy.xml文件:
<?xml …Run Code Online (Sandbox Code Playgroud) 我在 Eclipse 中使用 IvyDE;它可以解决依赖关系,但解决的 jars 没有顺序。
是否可以按字母顺序对罐子进行排序?

我想用Vaadin做一个项目,我正面临一些问题.这就是我做的.
我下载了Eclipse并安装了Vaadin for Eclipse插件.然后,我创建了一个新的Vaadin 7项目.它下载了一些常春藤依赖项,但是当我按下Run时,我收到此错误:java.lang.NoClassDefFoundError:com/vaadin/server/VaadinServlet.
我在互联网上搜索了一下但无济于事.有一点是在web-app的WEB-INF/lib文件夹中,没有jar.我附上了错误的屏幕截图以及web.xml和ivy.xml.

的ivy.xml:
<?xml version="1.0"?>
<!DOCTYPE ivy-module [
<!ENTITY vaadin.version "7.1.7">
]>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.example" module="v7proj" />
<configurations>
<!-- The default configuration, which should be deployed to the server -->
<conf name="default" />
<!-- A configuration only needed when compiling the widget set. Should
not be deployed to the server -->
<conf name="widgetset-compile" />
<!-- A configuration used in compilation of server side classes only.
Should be deployed to the server -->
<conf …Run Code Online (Sandbox Code Playgroud) 我的公司大量使用常春藤来下载依赖项.其中一些依赖项很大(约500MB),需要一段时间才能从远程存储库下载.
为了构建我们的应用程序,我们有一个ant脚本,它将首先解析所有依赖项并将其部署到服务器.
我已经设置了一个"IVY_HOME"环境变量,以便所有依赖项都下载到D:\ ivy_home而不是C:\ Users\.ivy2\ - 这是因为D:是我的SSD,它明显更快,而且它是我的地方本地服务器目录位于 - 因此将文件从ivy_home复制到服务器是非常快的.
但出于某种原因,当我在eclipse中使用IvyDE插件时 - 它总是希望下载所有依赖项的单独副本并将它们放入我的C:\中,这会导致几个问题: