【问题标题】:How to specify more than one artifact pattern for a resolver in ivy?如何为常春藤中的解析器指定多个工件模式?
【发布时间】:2013-12-19 19:22:47
【问题描述】:

我正在使用 ivy 和 ant 来构建多个模块。当我使用解析器发布时,我可以根据工件类型指定多个工件模式吗?我看到解析器,在我的情况下是文件系统解析器,它允许其中包含多个工件元素。我可以将其用于我的目的吗?如果是这样,怎么做?我尝试在文件系统解析器内部的工件上添加类型或 ext 属性,它抛出异常:

no set method found for type on class org.apache.ivy.core.settings.IvyPattern

no set method found for ext on class org.apache.ivy.core.settings.IvyPattern

非常感谢任何帮助。

【问题讨论】:

    标签: ant ivy


    【解决方案1】:

    您可以在发布期间设置人工制品模式

    <target name="publish" depends="jar, test" unless="option.noresolve" description="Publish produced artifacts in Ivy repository">
        <ivy:publish pubrevision="${publish.version}" artifactspattern="${jars}/[artifact].[ext]" status="${publish.status}" resolver="local" forcedeliver="true" update="true" overwrite="true"/>
    </target>
    

    ${jars} 它只是一个输出 jars 的路径。

    在 ivy.xml 中,您这样描述您的出版物:

    <publications>
        <artifact name="strongpoint" ext="jar" type="jar"/>
    </publications>
    

    【讨论】:

    • artifactspattern 不是指定模式来查找要发布的工件吗?它是否说明找到的工件要在目的地发布到哪里?我有一个模块文件夹,在它下面有 Build、src 和 doc 文件夹。我想从 build 文件夹发布 jar 并从 doc 文件夹发布文档。在我的 Ivysettings 文件中有 。因此,当我发布文档时,它们被放置在不同的文件夹下。我想将文档发布到“doc”文件夹,我该怎么做?
    • 我在文件系统解析器中使用 ivy.share.default.artifact.pattern 作为工件模式。我很困惑,所以我在工件标签上指定的模式,这是否指定在哪里可以找到使用此解析器发布的工件?这意味着也应该使用相同的模式来发布它们,对吗?那么,发布任务上的 artifactspattern 属性是否指定在哪里可以找到需要发布到此(在我的案例共享解析器中)解析器的工件?请澄清我的理解是否正确?
    猜你喜欢
    • 2012-12-23
    • 2011-08-19
    • 2018-04-04
    • 2011-04-05
    • 2015-08-27
    • 2016-02-15
    • 2011-03-18
    • 2013-07-13
    • 2011-04-12
    相关资源
    最近更新 更多