简体   繁体   English

无法使用Eclipse构建Liferay项目(Ant Ivy)

[英]Failing to build a liferay project with eclipse (Ant ivy)

I'm getting this error 我收到这个错误

BUILD FAILED
C:\---\---\---\build-common-ivy.xml:7: Problem: failed to create task or type if
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.

It seems to fail at the line where i define the property name="ivy.home": 我在定义属性名称=“ ivy.home”的那一行似乎失败了:

<project name="build-common-ivy" xmlns:antelope="antlib:ise.antelope.tasks" xmlns:ivy="antlib:org.apache.ivy.ant">
    <property name="ivy.home" value="${sdk.dir}/.ivy" />

<if>
        <not>
            <available file="${ivy.home}/ivy-${ivy.version}.jar" />
        </not>
        <then>
          ...

I think it's the ${sdk.dir} that isn't defined, but where I can define it? 我认为未定义的是$ {sdk.dir},但在哪里可以定义呢?

As explained by @CAustin your issue is that the "if" task is not a standard ANT feature. 正如@CAustin所解释的,您的问题是“ if”任务不是标准的ANT功能。 It's part of the 3rd party extension to ANT, called ant-contrib , and I would agree it's best avoided. 它是ANT的第三方扩展的一部分,称为ant-contrib ,我同意最好避免这样做。

If you want to automate the conditional installation of ivy, try something like the following: 如果要自动执行有条件的ivy安装,请尝试如下操作:

<project name="demo" default="build" xmlns:ivy="antlib:org.apache.ivy.ant">

    <available classname="org.apache.ivy.Main" property="ivy.installed"/> 

    <target name="install-ivy" unless="ivy.installed">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"/>
        <fail message="Ivy has been installed. Run the build again"/>
    </target>

    <target name="resolve" depends="install-ivy">
        <ivy:resolve/>

        ..
        ..    

Hope this helps 希望这可以帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM