在Ivy检索中忽略源jar

当我在我的ivy.xml中使用Red5(或任何项目)的依赖项时,我想只检索库jar。 无论我如何配置它,我仍然得到依赖的“源”jar子。 我已经搜索了文档和谷歌,还没有找到一个使用Ivy 2.2.0的解决方案。

我的ivy.xml中的这组节点似乎对大多数库来说效果最好,但是Spring忽略了它们。

   

如果有人有任何可行的提示,让我们听听!

指向源xml文件的链接

http://red5.googlecode.com/svn/java/server/trunk/ivy.xml

http://red5.googlecode.com/svn/java/server/trunk/ivysettings.xml

http://red5.googlecode.com/svn/java/server/trunk/build.xml

注意

不要说这是重复的,他们的答案不起作用:

常春藤:防止下载源和.txt文件

使常春藤不下载源和许可文件

更新1

  

在我的lib目录中生成这两个文件:

 org.springframework.core-3.0.5.RELEASE.jar org.springframework.core-sources-3.0.5.RELEASE.jar 

更新2对于赏金,我希望您的解决方案适用于Red5主干,每个人都可以使用它作为开源。 来源jar子对我来说只是一个烦恼,值得赏心点。

我修改了你的ivy.xmlivysettings.xml文件。

为了抑制源文件,我使用了默认配置映射,以避免为每个依赖项添加“conf”属性。

   .. .. 

Spring现在通过Maven central发布他们的软件,因此我修改了常春藤设置文件以使用这些而不是旧的常春藤捆绑存储库。

修改了ivy.xml

                                                                  

修订了ivysettings.xml

              

我在build.xml中使用它来只检索jar

  

我建议不要在依赖声明中使用“transitive”属性,而是尝试使用配置来解决您的问题。

常春藤中的配置在function上与Maven中的范围相同,但更灵活。

我通常在我的代码中声明至少以下3种配置

       

对应于任何java项目我需要的3组依赖项。

秘诀在于如何将您的依赖关系映射到您的配置。 如果你只想要没有它的依赖的jar,那么声明如下:

  

本地编译配置映射到远程Maven模块的范围。 Maven中的范围排除了任何传递依赖关系。

如果您希望工件包含它的传递依赖项,则声明配置映射如下:

  

使用ivy.xml文件

这将下载一个jar。

              

修改后的设置文件

我还建议使用ibiblio解析器,它旨在了解Maven 1和Maven 2存储库格式:

      .. ..    

注意我正在使用Springsource Maven存储库,它更有可能是最新的。 我不知道他们是否正确维护旧的常春藤存储库。

你可以尝试这样的事情。 它使用工件和匹配器 ,它对exclude-tags有效。 但是不要将排除放在依赖项中(这似乎是错误的,请参阅我的评论):

       

在您的依赖项中,只需通过使用工件节点调用它们来指定您要检索的各个工件。 尝试一下: