2011-06-15 64 views
1

这里是我的构建文件:无法识别workspaceid在Ant4Eclipse

<project name="ant-in-eclipse" basedir="." 
     xmlns:ant4eclipse="antlib:org.ant4eclipse" 
     xmlns:antcontrib="antlib:net.sf.antcontrib" default="compileAndJar" > 

    <taskdef uri="antlib:net.sf.antcontrib" 
      resource="net/sf/antcontrib/antlib.xml" /> 

    <!-- define ant4eclipse tasks --> 
    <taskdef uri="antlib:org.ant4eclipse" 
      resource="org/ant4eclipse/ant/antlib.xml" /> 

    <import file="/data/temp/ANT/ANT4/macros/a4e-jdt-macros.xml"/> 
    <target name="compileAndJar"> 
     <macrodef name="build"> 
      <attribute name="workspaceDirectory" default="deploy" /> 
      <sequential> 
       <echo>Hi</echo> 
      </sequential> 
     </macrodef> 

     <buildJdtProject workspaceDirectory="${workspaceDirectory}" 
         projectname="wfn-common.jar"> 
     <finish> 
      <jar destfile="deploy/wfn-common.jar"> 
       <ant4eclipse:jdtProjectFileSet destination="." 
       projectname="${buildJdtProject.project.name}" /> 
      </jar> 
     </finish> 
     </buildJdtProject> 
    </target> 
</project> 

我收到此错误

/data/temp/ANT/PTO_Build/WFN_Framework/wfn-common/sample.xml:21: The following error occurred while executing this line: 
/data/temp/ANT/ANT4/macros/a4e-jdt-macros.xml:105: ant4eclipse:executeJdtProject doesn't support the "workspaceid" attribute 
    at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:396) 
    at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:344) 
    at org.apache.tools.ant.Task.maybeConfigure(Task.java:202) 
    at org.apache.tools.ant.UnknownElement.configure(UnknownElement.java:196) 
    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.taskdefs.Sequential.execute(Sequential.java:68) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:600) 
    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.taskdefs.MacroInstance.execute(MacroInstance.java:398) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:600) 
    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:390) 
    at org.apache.tools.ant.Target.performTasks(Target.java:411) 
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
    at org.apache.tools.ant.Main.runBuild(Main.java:809) 
    at org.apache.tools.ant.Main.startAnt(Main.java:217) 
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 
Caused by: ant4eclipse:executeJdtProject doesn't support the "workspaceid" attribute. 
    at org.ant4eclipse.ant.jdt.containerargs.JdtClasspathContainerArgumentDelegate.setDynamicAttribute(JdtClasspathContainerArgumentDelegate.java:70) 
    at org.ant4eclipse.ant.jdt.AbstractExecuteJdtProjectTask.setDynamicAttribute(AbstractExecuteJdtProjectTask.java:63) 
    at org.apache.tools.ant.IntrospectionHelper.setAttribute(IntrospectionHelper.java:394) 
    at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:388) 
    ... 31 more 

任何人都可以请帮我吗?

回答

1

的错误是在文件中导入:

<进口 文件= “/数据/温度/ ANT/ANT4 /宏/ A4E-JDT-macros.xml”/>

我想你的buildJDTProject目标是在那里定义的,并且它是如何定义的错误。

  • 看看这个文件/data/temp/ANT/ANT4/macros/a4e-jdt-macros.xml
  • 看行105,这是你的构建失败

我猜测它会在buildJDTProject目标。我猜这个目标包含workspaceid属性,这似乎是非法的。

您可以删除该属性,或者找出它为什么包含在第一位。也许它适用于你的ant jdt库的不同版本?

两个进一步的猜测(我不熟悉ant4eclipse顺便说一句)。关于buildJdtProject任务ant4eclipse的...

文件称

是 'workspaceDirectory' 或 'workspaceId' 必须指定

你传入workspaceDirectory目标在你的建立脚本。可能workspaceId默认情况下在该导入文件的宏中指定。如果是这样,也许你最终定义了workspaceDirectoryworkspaceId,这是非法的。但是,该想法与您收到的错误消息不符。

或者,也许ant4eclipse区分属性名称。对于Ant来说这是不寻常的,它通常不区分大小写。但是ant4eclipse文档给出的属性名称为workspaceId,并且您的错误消息说不支持workspaceid。所以也许试着改变那个导入的文件中的情况。

+0

你能告诉我什么是正确的方法来在这里进行。 – NareshKumar 2011-06-15 11:39:27

+0

我已经添加了一些建议 – sudocode 2011-06-15 14:24:15