在Windows 7上配置Apache Ant和Ivy

时间:2013-03-18 21:28:51

标签: java ant ivy

我一直在尝试在我的Windows 7盒子上克隆和构建一个项目,如下所示:

git clone git@github.com:corvec/project-name.git
cd project-name
git submodule init
git submodule update
ant clean
ant resolve

ant resolve之前的所有命令都按预期工作,这给出了以下错误消息:

Buildfile: c:\workspace\project-name\build.xml

clean-lib:
   [delete] Deleting directory c:\workspace\project-name\lib

load-ivy:

resolve:
     [echo] Storing dependencies in lib dir: lib
    [mkdir] Created dir: c:\workspace\project-name\lib
[ivy:retrieve] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: file = c:\workspace\project-name\core-build\xml\ant\ivy\ivysettings.xml

BUILD FAILED
c:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml:55: impossible to configure
ivy:settings with given file: c:\workspace\project-name\core-build\xml\ant\ivy\ivysettings.xml
: java.text.ParseException: failed to load settings from file:/c:/workspace/project-name/core-build/xml/ant/ivy/ivysettings.xml: io problem while parsing config file: unknown protocol: c
        at org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:165)
        at org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
        at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:384)
        at org.apache.ivy.Ivy.configure(Ivy.java:411)
        at org.apache.ivy.ant.IvyAntSettings.createIvyEngine(IvyAntSettings.java:272)
        at org.apache.ivy.ant.IvyAntSettings.getConfiguredIvyInstance(IvyAntSettings.java:237)
        at org.apache.ivy.ant.IvyTask.getIvyInstance(IvyTask.java:92)
        at org.apache.ivy.ant.IvyTask.prepareTask(IvyTask.java:256)
        at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:276)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.Main.runBuild(Main.java:851)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.net.MalformedURLException: unknown protocol: c
        at org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:234)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:277)
        at org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
        ... 24 more
Caused by: java.net.MalformedURLException: unknown protocol: c
        at java.net.URL.<init>(URL.java:574)
        at java.net.URL.<init>(URL.java:464)
        at org.apache.ivy.core.settings.XmlSettingsParser.includeStarted(XmlSettingsParser.java:409)
        at org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:211)
        ... 38 more

Total time: 0 seconds

编辑:应用了详细标记后,我现在收到以下消息:

Apache Ant(TM) version 1.9.0 compiled on March 5 2013
Trying the default build file: build.xml
Buildfile: C:\workspace\project-name\build.xml
Detected Java version: 1.6 in: c:\Program Files\Java\jdk1.6.0_25\jre
Detected OS: Windows 7
parsing buildfile C:\workspace\project-name\build.xml with URI = file:/C:/workspace/project-name/build.xml
Project base dir set to: C:\workspace\project-name
parsing buildfile jar:file:/c:/apache-ant-1.9.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/c:/apache-ant-1.9.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
 [property] Loading C:\workspace\project-name\build.properties
Importing file C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml from C:\workspace\project-name\build.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-basic-targets.xml
Already defined in main or a previous import, ignore build-tests
Already defined in main or a previous import, ignore dist-war
Already defined in main or a previous import, ignore all
Already defined in main or a previous import, ignore console
Importing file C:\workspace\project-name\core-build\xml\ant\build-ant-contrib-targets.xml from
C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-ant-contrib-targets.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-ant-contrib-targets.xml
Overriding previous definition of reference to ant.projectHelper
Importing file C:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml from C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-ivy-targets.xml
Importing file C:\workspace\project-name\core-build\xml\ant\build-ant-contrib-targets.xml from
C:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml
Skipped already imported file:
   C:\workspace\project-name\core-build\xml\ant\build-ant-contrib-targets.xml

Importing file C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml from C:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml
Skipped already imported file:
   C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml

 [property] Loading C:\workspace\project-name\placeholder.build.properties
 [property] Unable to find property file: C:\workspace\project-name\placeholder.build.properties
 [property] Loading C:\workspace\project-name\core-build\xml\ant\ivy\ivysettings.properties
Property "ivy.basedir" has not been set
Property "ivy.basedir" has not been set
Override ignored for property "shared.base"
Override ignored for property "shared.lib"
Overriding previous definition of reference to ant.projectHelper
 [property] Loading C:\workspace\project-name\placeholder.build.properties
 [property] Unable to find property file: C:\workspace\project-name\placeholder.build.properties
Override ignored for property "conf.web.dir"
Override ignored for property "jdk.lib"
Importing file C:\workspace\project-name\core-build\xml\ant\build-testing-targets.xml from C:\workspace\project-name\core-build\xml\ant\build-basic-targets.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-testing-targets.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-testing-targets.xml
 [macrodef] creating macro  do-testing
 [macrodef] creating macro  test-one-class
 [macrodef] creating macro  test-classes
Overriding previous definition of reference to ant.projectHelper
Overriding previous definition of reference to ant.projectHelper
Importing file C:\workspace\project-name\core-build\xml\ant\build-eclipse-classpath.xml from C:\workspace\project-name\build.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-eclipse-classpath.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-eclipse-classpath.xml
 [property] Loading C:\workspace\project-name\placeholder.build.properties
 [property] Unable to find property file: C:\workspace\project-name\placeholder.build.properties
Overriding previous definition of reference to ant.projectHelper
Importing file C:\workspace\project-name\core-build\xml\ant\build-findBugs-targets.xml from C:\workspace\project-name\build.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-findBugs-targets.xml with
URI = file:/C:/workspace/project-name/core-build/xml/ant/build-findBugs-targets.xml
Override ignored for property "shared.lib"
Overriding previous definition of reference to ant.projectHelper
Importing file C:\workspace\project-name\core-build\xml\ant\build-pmd-targets.xml from C:\workspace\project-name\build.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\workspace\project-name\core-build\xml\ant\build-pmd-targets.xml with URI = file:/C:/workspace/project-name/core-build/xml/ant/build-pmd-targets.xml
Override ignored for property "shared.lib"
Overriding previous definition of reference to ant.projectHelper
Overriding previous definition of reference to lib.jars
Build sequence for target(s) `resolve' is [clean-lib, load-ivy, resolve]
Complete build sequence is [clean-lib, load-ivy, resolve, build, build-tests, -missing-test-param, project-name.run-one-test-plain, project-name.run-tests-xml, project-name.clean, check-findbugs-filters, runFindBugsFiltered, runFindBugsUnfiltered, project-name.runFindBugs, eclipse-classpath, dist, dist-war, project-name.run-one-test-html, pmd.pmd-html, report, runFindBugsFiltered-html, runFindBugsUnfiltered-html, runFindBugs-html, project-name.dist, project-name.dist-onejar, project-name.eclipse-classpath-with-conf, project-name.clean-cache, instrument-classes, run-tests, report-tests, report-coverage, ivy-version, publish-nodeps,
publish, project-name.publish-nodeps, project-name.run-tests, cpd, run-tests-html, cpd-html, pmd, pmd-all, project-name.ivy-local-version, project-name.create-javadoc, run-one-test-html, project-name.publish, project-name.runFindBugsFiltered-html, resolve-all, run-master-testsuites, clean-local, pmd-html, pmd.pmd-all-html, ivy-local-version, project-name.clean-all-local, runFindBugs, console, pmd.pmd-all, run-one-test-plain, clean-all-local, project-name.resolve_delivered, project-name.report, project-name.load-ivy, project-name.runFindBugs-html, project-name.clean-lib, project-name.post-resolve-echo, project-name.dist-war, project-name.ivy-version, pmd.cpd-html, project-name.ivy-new-version, dist-jar, ivy-new-version, resolve_delivered, project-name.runFindBugsFiltered, project-name.copy-dependencies, project-name.publish-local-nodeps, post-resolve-echo, dist-onejar, clean-cache, project-name.run-tests-plain, create-javadoc, project-name.build, run-test, project-name.all, run-tests-plain, pmd.cpd, test, copy-dependencies, publish-local-nodeps, publish-local, project-name.pom, project-name.report-coverage-xml, report-coverage-xml, project-name.console, project-name.report-tests, project-name.test, project-name.instrument-classes, pmd.pmd, clean, project-name.publish-local, copy-dist, run-jar, dist-reports, project-name.build-tests, project-name.copy-dist, project-name.run-one-test, project-name.dist-reports, project-name.check-findbugs-filters, project-name.-missing-test-param, run-one-test-xml, run-one-test, report-master-testsuites,
project-name.runFindBugsUnfiltered-html, project-name.resolve, build-dep, project-name.dist-jar, project-name.runFindBugsUnfiltered, all, project-name.report-master-testsuites, project-name.build-dep, project-name.resolve-all, project-name.clean-local, pom, project-name.run-tests-html, eclipse-classpath-with-conf, project-name.run-master-testsuites, run-tests-xml, project-name.eclipse-classpath, project-name.run-test, project-name.run-jar, pmd-all-html, project-name.report-coverage, project-name.run-one-test-xml, ]

clean-lib:

load-ivy:
  [taskdef] Could not load definitions from resource org/apache/ivy/ant/antlib.xml. It could not be found.
[antlib:org.apache.ivy.ant] Could not load definitions from resource org/apache/ivy/ant/antlib.xml. It could not be found.

BUILD FAILED
C:\workspace\project-name\core-build\xml\ant\build-ivy-targets.xml:24: Problem: failed to create task or type antlib:org.apache.ivy.ant:settings
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration.
Action: Check that the implementing library exists in one of:
        -c:\apache-ant-1.9.0\lib
        -C:\Users\localuser\.ant\lib
        -a directory added on the command line with the -lib argument

        at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:487)
        at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:419)
        at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
        at org.apache.tools.ant.Task.perform(Task.java:347)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.Main.runBuild(Main.java:851)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds

我怀疑这是项目特定配置的问题;我不是这个项目的唯一开发人员,其他开发人员都在使用它。更有可能的是,它与我的系统配置有关。他们正在运行Linux和Mac OS,如果这有所不同。我想它可能与某些未被git跟踪的文件有关,但我认为其他开发人员之一会注意到这一点。

已经尝试更新build.properties中的文件路径以使用绝对路径而不是相对路径,如下所示(基于this recommendation):

shared.base=file:///c:/workspace/project-name/core-build

而不是

shared.base=core-build

当我这样做时,收到以下错误消息:

Apache Ant(TM) version 1.9.0 compiled on March 5 2013
Trying the default build file: build.xml
Buildfile: C:\workspace\project-name\build.xml
Detected Java version: 1.6 in: c:\Program Files\Java\jdk1.6.0_25\jre
Detected OS: Windows 7
parsing buildfile C:\workspace\project-name\build.xml with URI = file:/C:/workspace/project-name/build.xml
Project base dir set to: C:\workspace\project-name
parsing buildfile jar:file:/c:/apache-ant-1.9.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/c:/apache-ant-1.9.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
 [property] Loading C:\workspace\project-name\build.properties
Importing file C:\workspace\project-name\file:\C:\workspace\project-name\project-name\core-build\xml\ant\build-basic-targets.xml from C:\workspace\project-name\build.xml

BUILD FAILED
C:\workspace\project-name\build.xml:5: Cannot find C:\workspace\project-name\file:\C:\workspace\project-name\project-name\core-build\xml\ant\build-basic-targets.xml imported from C:\workspace\project-name\build.xml
        at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:181)
        at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:179)
        at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:82)
        at org.apache.tools.ant.Main.runBuild(Main.java:826)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds

为此,以下是我系统的一些相关细节:

PATH = %AMDAPPSDKROOT%bin\x86_64;%AMDAPPSDKROOT%bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%MAVEN%;%SBT_HOME%;%IRONRUBY_11%;%JAVA_HOME%\bin;%GRAILS_HOME%\bin;%GROOVY_HOME%\bin;%SUBVERSION%\bin;%GIT%\cmd;C:\Utilities;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft\Web Platform Installer\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;%ANT_HOME%\bin
echo %PATH% = c:\Program Files (x86)\AMD APP\bin\x86_64;c:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\apache-maven-3.0.4\bin;C:\Program Files (x86)\sbt\;C:\Program Files (x86)\IronRuby 1.1\bin;C:\Program Files\Java\jdk1.6.0_25\bin;C:\Grails\grails-2.1.0\bin;C:\Program Files (x86)\Groovy\Groovy-2.1.1\bin;C:\Program Files (x86)\Subversion\bin;C:\Program Files (x86)\Git\cmd;C:\Utilities;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft\Web Platform Installer\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\apache-ant-1.9.0\bin;C:\Program Files (x86)\vim\vim73;C:\Ruby193\bin;C:\Python27
%ANT_HOME% = C:\apache-ant-1.9.0
%JAVA_HOME% = C:\Program Files\Java\jdk1.6.0_25
javac -version = 1.6.0_25

我还尝试使用新版本的Ivy,ivy-2.3.0,但我遇到了类似的错误。

我认为此部分是常春藤解决目标:

<target name="resolve" depends="clean-lib, load-ivy" description="--> resolve and retrieve dependencies with ivy">
    <echo message="Storing dependencies in lib dir: ${lib.dir}" />
    <mkdir dir="lib"/>
    <ivy:retrieve />

    <ivy:deliver deliverpattern="ivy_delivered.xml" />
</target>

路径

我在build.properties和其他相关文件中包含了相关的路径摘录:

// build.xml
<property file="build.properties" />
// build.properties
shared.base=core-build
shared.xml=${shared.base}/xml
// build-ivy-targets.xml (imported into build.xml)
<property name="ivy.settings.dir" value="${shared.xml}/ant/ivy" />

常春藤配置

<!-- build-ivy-targets.xml (stripped down quite a bit): -->
<project basedir="." default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
    <import file="build-ant-contrib-targets.xml" />
    <import file="build-basic-targets.xml" />

    <property file="placeholder.build.properties" />
    <property name="ivy.settings.dir" value="${shared.xml}/ant/ivy" />
    <property file="${ivy.settings.dir}/ivysettings.properties" />

    <path id="ivy.lib.path">
        <fileset dir="${shared.lib}">
            <include name="ant-extensions/ivy*.jar" />
        </fileset>
    </path>

    <path id="lib.jars">
        <fileset id="lib.jars.fileset" dir="lib" erroronmissingdir="false">
            <include name="*.jar" />
        </fileset>
    </path>

    <!-- `ivy:settings file` is only set here: -->
    <target name="load-ivy">
        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path" />
        <ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />
    </target>
    <target name="resolve" depends="clean-lib, load-ivy" description="--> resolve and retrieve dependencies with ivy">
        <echo message="Storing dependencies in lib dir: ${lib.dir}" />
        <mkdir dir="lib"/>
        <ivy:retrieve />

        <ivy:deliver deliverpattern="ivy_delivered.xml" />
    </target>
    <target name="clean-lib" description="--> clean the project libraries directory (dependencies)">
        <delete includeemptydirs="true" dir="${lib.dir}" />
    </target>

</project>

我已经发现Apache Ivy错误消息意味着某个地方无法解析目录而是将其作为URL读取。我应该采取什么措施来解决这个问题?

2 个答案:

答案 0 :(得分:1)

Windows上的Ivy需要设置不同于Linux的ivy-settings变量。

将第<ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />行更改为:

<ivy:settings url="file:/C://workspace//project-name//core-build//xml//ant//ivy//ivysettings.xml" />

重要的是要注意两件事情的变化:

  1. 您设置ivy.settings.file
  2. ,而不是设置ivy.settings.url
  3. 您正在设置绝对路径而不是相对路径。

答案 1 :(得分:0)

问题是ant正在尝试从相对路径而不是绝对位置解析导入。在错误中看到这一行?

  

找不到C:\ workspace \ project-name \ file:\ C:\ workspace \ project-name \ project-name \ core-build \ xml \ ant \ build-basic-targets.xml从C:\导入工作空间\项目名\的build.xml

使导入文件的路径成为相对于build.xml目录的路径,例如&#34; project-name / core-build / xml / ant / basic-build-targets.xml&# 34;,并且您的import语句如下所示:

<import file="${basedir}/${shared.base}"/>