Ant Ivy:获取Javadocs和源代码

Ant Ivy:获取Javadocs和源代码,ant,ivy,Ant,Ivy,我对Ivy相当陌生,但我已经让它与jar依赖项一起工作。问题是如何设置它,这样我就可以独立于jar获取javadocs和源代码 我有一个简单的测试项目,但无论我在做什么,我都会获取包含类文件的jar 我有以下ivy.xml文件: 以及以下build.xml: 在命令行中,我将键入: $ ant -Divy.conf=compile 而且,这应该下载带有类的jar文件 但是,如果我键入以下内容: $ ant -Divy.conf=sources 我想要包含源代码而不是类的jar文件,当

我对Ivy相当陌生,但我已经让它与jar依赖项一起工作。问题是如何设置它,这样我就可以独立于jar获取javadocs和源代码

我有一个简单的测试项目,但无论我在做什么,我都会获取包含类文件的jar

我有以下
ivy.xml
文件:


以及以下
build.xml


在命令行中,我将键入:

$ ant -Divy.conf=compile
而且,这应该下载带有类的jar文件

但是,如果我键入以下内容:

$ ant -Divy.conf=sources
我想要包含源代码而不是类的jar文件,当我键入以下内容时:

$ ant -Divy.conf=javadoc
我想要包含javadoc而不是源代码的jar文件

我敢肯定是我的
ivy.xml
不太正确。我最初试过这个:



下载了jar、源代码和javadoc,但无论我尝试了哪种配置,都是一次完成的。

好的,我想我已经找到了答案。整个过程我都想得太多了。我的
部分应如下所示:


这将我的
javadoc
映射到Maven的
javadoc
,并将我的
sources
映射到Maven的
sources
。当我映射
conf=“sources->default”
时,它将我的
源映射到Maven的
default
,后者是编译依赖项


我可以在一行中指定所有配置,并且我不需要单独的
实体。

我发现,如果我不将配置映射到默认值,无论我是否需要,我都可以得到所有配置。在您的示例中,如果我说
,我将得到jar、javadoc和源代码。在这种情况下,我只想要类jar。如果我说
我只想要Javadoc.yeah right:)我忘记了默认值是单个jar的maven范围。因此可以将其缩短为conf=“javadoc;sources;compile->default”I think.Nope。我试过了,而且
都会用类来拉标准jar。问题是您必须将
编译
映射到Maven的
默认
,将
javadoc
映射到Maven的
javadoc
,将
映射到Maven的
源。因此,
conf=“compile->default;sources->sources;javadoc->javadoc”
。这将我的三个配置映射到Maven的三个作用域。这很令人困惑。我花了几个小时研究它,问了这么一个问题,又花了一个小时才弄明白。可以指定
configurations defaultconfmapping=“compile->master;runtime->default;sources->@;javadoc->@
,然后只使用依赖项和
conf=“compile,javadoc,sources”
,而不需要额外的映射。