gpt4 book ai didi

ant - Ivy:获取 Javadoc 和源代码

转载 作者:行者123 更新时间:2023-12-04 12:23:10 27 4
gpt4 key购买 nike

我对 Ivy 相当陌生,但已经让它与 jar 依赖项一起工作。问题是试图设置它,所以我可以独立于 jars 获取 javadocs 和源。

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

我有以下 ivy.xml文件:

<ivy-module version="1.0">
<info
organisation="com.vegicorp"
module="test"
revision="1.0"
status="release"/>

<configurations>
<conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="provided" visibility="public"/>
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="test" visibility="private" extends="runtime"/>
<conf name="system" visibility="public"/>
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public"/>
<conf name="optional" visibility="public"/>
</configurations>

<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="compile->default"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="sources->default">
<artifact name="commons-logging" type="sources" ext="jar"/>
</dependency>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->default">
<artifact name="commons-logging" type="javadoc" ext="jar"/>
</dependency>
</dependencies>
</ivy-module>

以及以下 build.xml :

<project name="ivy-test" default="default" basedir="."
xmlns:ivy="http://ant.apache.org/ivy">

<property name="ivy.dir" value="${basedir}/ivy.dir"/>
<import file="${ivy.dir}/ivy.tasks.xml"/>

<property name="target.dir" value="${basedir}/lib"/>
<target name="-resolve">
<ivy:resolve/>
</target>

<target name="clean">
<delete dir="${target.dir}"/>
<ivy:cleancache/>
</target>

<target name="default"
depends="-resolve">

<fail message="ivy.conf is not defined">
<condition>
<not>
<isset property="ivy.conf"/>
</not>
</condition>
</fail>

<delete dir="${target.dir}"/>
<mkdir dir="${target.dir}"/>
<ivy:retrieve conf="${ivy.conf}"
pattern="${target.dir}/[artifact]-[revision].[ext]"/>
</target>
</project>

在命令行中,我将输入:
$ ant -Divy.conf=compile

而且,这应该下载带有类的 jarfile。

但是,如果我输入它:
$ ant -Divy.conf=sources

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

我想要包含 javadoc 而不是源的 jar 文件。

我很确定这是我的 ivy.xml这是不对的。我最初尝试过这个:

<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1">
<artifact name="commons-logging" type="jar" ext="jar" conf="compile->default"/>
<artifact name="commons-logging" type="sources" ext="jar" conf="sources->default"/>
<artifact name="commons-logging" type="javadoc" ext="jar" conf="javadoc->default"/>
</dependency>

这下载了 jar、源代码和 javadoc,但无论我尝试哪种配置,都会立即下载。

最佳答案

好吧,我想我已经想通了。整个过程我都想多了。我的 <dependencies>部分应如下所示:

<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->javadoc;sources->sources;compile->default"/>
</dependencies>

这映射了我的 javadoc到 Maven 的 javadoc和我的 sources到 Maven 的 sources .当我映射 conf="sources->default" ,它正在映射我的 sources到 Maven 的 default这是编译依赖项。

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

关于ant - Ivy:获取 Javadoc 和源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com