gpt4 book ai didi

java - 当尝试从 gradle 运行一个简单的 ant 脚本时,我得到 "srcdir does not exist"

转载 作者:行者123 更新时间:2023-11-30 07:55:38 25 4
gpt4 key购买 nike

我正在尝试从 gradle 运行一个简单的最低限度的 ant 脚本。我的build.gradle只有ant import语句

ant.importBuild 'build.xml'

我的 ant build.xml 如下。请注意,当我使用 ant 编译时,这工作正常。

<?xml version="1.0"?>
<project name="SampleProject" default="antCompile" basedir="SampleProject">
<target name="antCompile">
<mkdir dir="build/classes" />
<javac srcdir="src" destdir="build/classes" />
</target>
<target name="compress" depends="antCompile">
<mkdir dir="build/jar" />
<jar destfile="build/jar/SampleProject.jar" basedir="build/classes" />
</target>
</project>

但是当我尝试在命令提示符中使用以下命令运行 antCompile 目标时。

gradle antCompile

我收到“srcdir 不存在”异常。

但是,如果我将 build.xml 修改为以下内容:

<?xml version="1.0"?>
<project name="SampleProject" default="antCompile" basedir=".">

<target name="antCompile">
<mkdir dir="SampleProject/build/classes" />
<javac includeAntRuntime="false" srcdir="SampleProject/src" destdir="SampleProject/build/classes" />
</target>

<target name="compress" depends="antCompile">
<mkdir dir="SampleProject/build/jar" />
<jar destfile="SampleProject/build/jar/SampleProject.jar" basedir="SampleProject/build/classes" />
</target>

</project>

我能够从 gradle 成功运行脚本。请注意,在这两种情况下,使用 ant 工具进行编译都是有效的。

我无法确定为什么我的第一种方法在运行 gradle 时不起作用。任何帮助将不胜感激。

最佳答案

似乎是 gradle-core-xx.jar 中 org/gradle/api/internal/project/DefaultAntBuilder.java
的限制

  public void importBuild(Object antBuildFile, Transformer<? extends String, ? super String> taskNamer) {
File file = this.gradleProject.file(antBuildFile);
File baseDir = file.getParentFile();

Set existingAntTargets = new HashSet(getAntProject().getTargets().keySet());
File oldBaseDir = getAntProject().getBaseDir();
getAntProject().setBaseDir(baseDir);

表示 basedir 设置为包含 antscript 的目录,而不是值 导入ant文件的basedir属性。
-- 编辑 --
发现open issue on gradle.org

关于java - 当尝试从 gradle 运行一个简单的 ant 脚本时,我得到 "srcdir does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714279/

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