Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Ant中使用Maven实现jar依赖_Java_Maven_Ant_Jar_Build - Fatal编程技术网

Java 在Ant中使用Maven实现jar依赖

Java 在Ant中使用Maven实现jar依赖,java,maven,ant,jar,build,Java,Maven,Ant,Jar,Build,我是Maven新手,但对Ant很熟悉,我喜欢Maven下载JAR及其依赖项的方式,因此我希望在我的Ant构建脚本中包含Maven依赖项。我已经看到了如何使用,但是这里所有的jar文件都下载到.m2文件夹中,而我需要所有的jar文件下载到我项目的lib文件夹中。 这能不能做到,?如果可以的话,有谁能建议我怎么做。这是一个非常合法的问题 使用maven ant任务确实会使用通用的maven存储库位置,这仅仅是因为这将使所有maven项目受益,而不仅仅是本地项目 Maven默认为所有本地项目使用一个共

我是Maven新手,但对Ant很熟悉,我喜欢Maven下载JAR及其依赖项的方式,因此我希望在我的Ant构建脚本中包含Maven依赖项。我已经看到了如何使用,但是这里所有的jar文件都下载到
.m2文件夹中,而我需要所有的jar文件下载到我项目的lib文件夹中。

这能不能做到,?如果可以的话,有谁能建议我怎么做。

这是一个非常合法的问题

使用maven ant任务确实会使用通用的maven存储库位置,这仅仅是因为这将使所有maven项目受益,而不仅仅是本地项目

Maven默认为所有本地项目使用一个共享缓存,只是因为为每个项目下载CommonsLang有点可笑

如果愿意,可以指定执行的localRepository位置(请参阅)

另外,正如另一位用户所说,它也很适合您的用例。如果您只需要下载依赖项,那么就可以下载。Maven可以这样做,但包含更多内容,这取决于您是否真的想探索这些选项。

我找到了一种方法。 您必须在工件标记中提供filesetid,并使用“filesetid”复制到给定位置

<target name="maven-test">
  <artifact:dependencies filesetid="build-dependency-jars">
    <dependency groupId="gorup_id" artifactId="artifact_id" version="version" />
  </artifact:dependencies>

<copy todir="./lib/">
    <fileset refid="build-dependency-jars" />
    <mapper type="flatten" />
</copy>

</target>


如果您对ANT更满意,我建议您使用ApacheIvy。这会下载项目库文件夹中的JAR吗?有人能告诉我为什么它会被否决吗。。这个问题是否有用或没有意义。是的,ivy中的“检索”任务在默认情况下将填充一个“lib”目录。就我个人而言,我使用更强大的cachepath任务结合配置来控制构建/测试和运行时类路径。我建议浏览网站上的各种问题,请参见: