首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在常春藤检索中忽略源jar

在常春藤检索中忽略源jar
EN

Stack Overflow用户
提问于 2011-08-12 20:53:07
回答 5查看 12.1K关注 0票数 12

当我使用ivy.xml for Red5 (或其他任何项目)中的依赖项时,我只想检索库jar。无论我如何配置它,我仍然可以获得用于依赖关系的“源”jars。我已经浏览了文档和google,还没有找到一个使用Ivy 2.2.0的解决方案。

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

代码语言:javascript
运行
复制
    <exclude ext="txt" />
    <exclude type="src" />
    <exclude artifact="!sources" />

如果有人有任何有用的提示,让我们听听吧!!

链接到源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

Note

不要说这是重复的,他们的答案是行不通的:

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

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

更新1

代码语言:javascript
运行
复制
<dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" transitive="false" />

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

代码语言:javascript
运行
复制
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.core-sources-3.0.5.RELEASE.jar

对于更新2,我希望您的解决方案可以使用每个人都可以作为开放源代码使用的Red5主干。这些资料罐对我来说只是一件烦人的事,非常值得赏金。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-11 23:54:55

我修改了您的、ivy.xml、和ivy.xml文件。

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

代码语言:javascript
运行
复制
    <configurations defaultconfmapping="default">
    ..
    ..

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

修正ivy.xml

代码语言:javascript
运行
复制
<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="red5" module="server" />

    <configurations defaultconfmapping="default">
        <conf name="default"/>
        <conf name="java6" extends="default" description="Java 6 dependencies"/>
        <conf name="eclipse" description="Special dependencies in Eclipse"/>
        <conf name="utest" extends="eclipse" description="Unit testing dependencies"/>
    </configurations>

    <dependencies>
        <dependency org="javax" name="javaee-api" rev="5.1.2" />

        <!-- Spring --> 
        <dependency org="org.springframework" name="spring-asm" 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-expression" rev="3.0.5.RELEASE" />
        <dependency org="org.springframework" name="spring-web" rev="3.0.5.RELEASE" />

        <!-- Logging --> 
        <dependency org="org.slf4j" name="com.springsource.slf4j.api" rev="1.6.1" transitive="false" />
        <dependency org="org.slf4j" name="com.springsource.slf4j.bridge" rev="1.6.1" transitive="false" />

        <dependency name="jul-to-slf4j" rev="1.6.1" />
        <dependency name="log4j-over-slf4j" rev="1.6.1" />
        <dependency name="jcl-over-slf4j" rev="1.6.1" />    
        <dependency name="logback-classic" rev="0.9.28" />
        <dependency name="logback-core" rev="0.9.28" />

        <!-- General --> 
        <dependency org="commons" name="commons-beanutils" rev="1.8.2" />
        <dependency org="org.apache.commons" name="com.springsource.org.apache.commons.codec" rev="1.4.0" transitive="false" />
        <dependency org="org.apache.commons" name="com.springsource.org.apache.commons.collections" rev="3.2.1" transitive="false" />

        <dependency org="commons" name="httpcore" rev="4.1.3" />
        <dependency org="commons" name="httpclient" rev="4.1.2" />

        <dependency org="commons" name="commons-lang3" rev="3.0-beta" />
        <dependency org="org.apache.commons" name="com.springsource.org.apache.commons.modeler" rev="2.0.1" transitive="false" />

        <dependency org="commons" name="commons-pool" rev="1.5.6" />
        <dependency name="quartz" rev="1.8.5" />
        <dependency name="ehcache" rev="2.2.0" />

        <!-- XML -->
        <dependency org="org.apache.xerces" name="com.springsource.org.apache.xerces" rev="2.9.1" transitive="false" />
        <dependency name="xmlrpc" rev="2.0.1" />

        <!-- Mina -->   
        <dependency org="mina" name="mina-integration-beans" rev="2.0.4" />
        <dependency org="mina" name="mina-integration-jmx" rev="2.0.4" />
        <dependency org="mina" name="mina-core" rev="2.0.4" />

        <!-- Scripting -->
        <dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm" rev="3.2.0" transitive="false" />
        <dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm.commons" rev="3.2.0" transitive="false" />
        <dependency org="org.antlr" name="com.springsource.org.antlr" rev="3.1.3" transitive="false" />
        <dependency org="org.codehaus.groovy" name="com.springsource.org.codehaus.groovy" rev="1.7.0" transitive="false" />
        <dependency name="jruby-complete" rev="1.1.6" />
        <dependency name="jython" rev="2.5" /> 
        <dependency org="org.mozilla.javascript" name="com.springsource.org.mozilla.javascript" rev="1.7.0.R2" transitive="false" />
        <dependency org="javax.xml.stream" name="com.springsource.javax.xml.stream" rev="1.0.1" transitive="false" />
        <dependency org="org.springframework" name="spring-context-support" rev="3.0.5.RELEASE" />

        <!-- Crypto -->
        <dependency name="bcprov-jdk16" rev="145" conf="java6->*" /> 

        <!-- MP3 -->
        <dependency name="jaudiotagger" rev="2.0.4-SNAPSHOT" />           

        <!-- Testing support -->
        <!-- until Eclipse updates their junit version, we have to use this -->
        <dependency org="org.junit" name="com.springsource.org.junit" rev="4.8.1" conf="eclipse->*" transitive="false" />
        <dependency name="GroboUtils" rev="5-core" conf="eclipse->*" />
        <dependency org="org.springframework" name="org.springframework.test" rev="3.0.5.RELEASE" conf="eclipse->*" transitive="false" />
        <dependency org="org.springframework" name="org.springframework.transaction" rev="3.0.5.RELEASE" conf="eclipse->*" transitive="false" />
    </dependencies>
</ivy-module>

修正ivysettings.xml

代码语言:javascript
运行
复制
<ivysettings>
    <settings defaultResolver="chain"/>
    <resolvers>
        <chain name="chain">
            <ibiblio name='central' m2compatible='true'/>
            <ibiblio name='springsource-external' m2compatible='true' root='http://repository.springsource.com/maven/bundles/external'/>
            <url name="googlecode">
                <artifact pattern="http://red5.googlecode.com/svn/repository/[artifact](-[revision]).[ext]" />
                <artifact pattern="http://red5.googlecode.com/svn/repository/[organisation]/[artifact](-[revision]).[ext]" />
            </url>
        </chain>
    </resolvers>
</ivysettings>
票数 9
EN

Stack Overflow用户

发布于 2011-09-10 19:33:42

我在build.xml中使用这个只检索罐子

代码语言:javascript
运行
复制
<ivy:retrieve type="jar"/>
票数 10
EN

Stack Overflow用户

发布于 2011-08-18 05:02:37

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

常春藤中的配置在功能上与Maven中的作用域相同,但要灵活得多。

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

代码语言:javascript
运行
复制
    <configurations>
        <conf name="compile" description="Compile time dependencies"/>
        <conf name="runtime" description="Compile time dependencies" extends="compile"/>
        <conf name="test"    description="Compile time dependencies" extends="runtime"/>
    </configurations>

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

秘诀是如何将依赖关系映射到配置。如果您只希望jar没有它的依赖项,那么按如下方式声明它:

代码语言:javascript
运行
复制
<dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" conf="compile->master"/>

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

如果您希望工件包含它的传递依赖项,那么按照以下方式声明配置映射:

代码语言:javascript
运行
复制
<dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" conf="compile->default"/>

工作ivy.xml文件

这将下载一个罐子。

代码语言:javascript
运行
复制
<?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="red5" module="server" />
    <configurations>
        <conf name="default"/>
        <conf name="java6" extends="default" description="Java 6 dependencies"/>
        <conf name="utest" extends="eclipse" description="Unit testing dependencies"/>
        <conf name="eclipse" description="Special dependencies in Eclipse"/>
    </configurations>
    <dependencies>
        <dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" conf="default->master"/>
    </dependencies>
</ivy-module>

修改后的设置文件

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

代码语言:javascript
运行
复制
<ivysettings>
    <settings defaultResolver="local"/>
    <resolvers>
        <chain name="local">
            <ibiblio name='springsource-releases' m2compatible='true' root='http://repository.springsource.com/maven/bundles/release'/>
             ..
             ..
        </chain>
    </resolvers>
</ivysettings>

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7046198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档