1

我有一个要在其中实现 Ivy 的项目,但它并没有在 ivy:retrieve 命令期间拉下一个依赖项。

ivy.xml 除外:

    <dependency org="com.sun.jersey.contribs"   name="maven-wadl-plugin" rev="1.12" conf="support->default" >
        <!-- artifact name="maven-wadl-plugin" type="jar" /-->
        <exclude org="junit"                    module="junit" />
        <exclude org="org.apache.maven"         module="apache-maven" />
        <exclude org="org.apache.maven"         module="maven-artifact" />
        <exclude org="org.apache.maven"         module="maven-plugin-api" />
        <exclude org="xerces"                   module="xercesImpl" />
    </dependency>

我尝试使用和不使用“排除”以确保我没有遗漏任何东西,但是当我删除排除时,它会下载比需要更多的 jar。

我使用 maven-wadl-plugin.jar 为 rest 应用程序生成 WADL。我只是不确定这里到底缺少什么,但我感觉 maven-wadl-plugin pom.xml 和配置中有一些非常复杂的东西。

感谢您的任何帮助,您可以提供。

4

2 回答 2

0

如果您只想要主要工件,而不需要其传递依赖项,那么我建议编写 ivy 文件,如下所示:

<dependencies>
    <dependency org="com.sun.jersey.contribs"   name="maven-wadl-plugin" rev="1.12" conf="support->master"/>
</dependencies>

神奇的是配置映射:

conf="support->master"

以下答案描述了配置如何映射到 Maven 范围:

特殊的“master”远程配置将没有依赖项,而“default”将下拉额外的编译依赖项。

常春藤依赖报告

在一个相关的问题上,我建议使用报告任务来生成一个依赖报告:

<target name="resolve" description="Use ivy to resolve classpaths">
    <ivy:resolve/>
    <ivy:report todir='build/ivy' graph='false' xml='false'/>
</target>

这将了解正在下载的 42 个附加文件与您的原始设置之间的关系。

于 2013-01-28T21:58:03.017 回答
0

我想到了。类型是 maven-plugin。不是罐子。这就是它会解析但不会检索的原因。非常感谢您提供的信息。

在 build.xml 我改变了常春藤检索如下。

    <ivy:retrieve pattern="${support.dir}/[artifact]-[revision].[ext]" type="maven-plugin,jar,bundle" conf="support"/>

谢谢马克。

于 2013-01-30T16:51:27.343 回答