0

我已经建立了一个 AWS CodeArtifact 存储库,并使用 Maven 向它发布了一个 jar。

我想在 Ant 任务中使用该 jar,并且我正在尝试使用 Apache Ivy 下载依赖项。

我已成功使用 Ivy 从 Maven 中央存储库下载公共库,但我不知道如何将我的 AWS CodeArtifact 存储库添加到 Ivy。官方的常春藤教程对我来说很难理解。

4

1 回答 1

0

解决方案是从 Ivy 切换到 Maven Resolver Ant Tasks - 更好地记录和更容易理解。

我现在可以使用类似这样的方式从我的 ant 任务中加载 AWS CodeArtifact 依赖项(在从 AWS CodeArtifact 执行 Maven 设置说明之后)。这将下载 Maven 解析器 jar 作为该过程的一部分:

<property name="maven.install.version" value="1.3.0"/>
<property name="ant.jar.dir" value="${user.home}/.ant/lib"/>
<property name="maven.jar.file" value="${ant.jar.dir}/maven-resolver-ant-tasks.jar"/>

<target name="load-maven-dependencies" depends="init-maven">
    <resolver:resolve>
        <dependencies>
            <dependency coords="group:artifact:version"/>
        </dependencies>
        <path refid="main.classpath" classpath="compile"/>
    </resolver:resolve>
</target>

<target name="init-maven" depends="download-maven">
    <path id="maven.lib.path">
        <fileset dir="${ant.jar.dir}" includes="${maven.jar.file}"/>
    </path>
    <taskdef resource="org/apache/maven/resolver/ant/antlib.xml" uri="antlib:org.apache.maven.resolver.ant" classpathref="maven.lib.path"/>
</target>

<target name="download-maven" unless="offline">
    <mkdir dir="${ant.jar.dir}" />
    <get src="https://search.maven.org/remotecontent?filepath=org/apache/maven/resolver/maven-resolver-ant-tasks/${maven.install.version}/maven-resolver-ant-tasks-${maven.install.version}-uber.jar" dest="${maven.jar.file}" usetimestamp="true"/>
</target>

然后,您可以在 taskdef 中使用 main.claspath,如下所示:

<taskdef name="customTask" classname="com.prosc.CustomAntTask" classpathref="main.classpath" />
于 2020-12-01T15:52:48.947 回答