Невозможно распознать рабочее пространство в Ant4Eclipse - PullRequest
1 голос
/ 15 июня 2011

Вот мой файл сборки:

<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 Ответ

1 голос
/ 15 июня 2011

Ошибка в импортируемом файле:

<импорт Файл = "/ данные / температуры / ANT / ANT4 / макросы / a4e-Jdt-macros.xml" />

Я полагаю, ваша цель buildJDTProject определена там, и есть ошибка в том, как она определена.

  • Взгляните на этот файл /data/temp/ANT/ANT4/macros/a4e-jdt-macros.xml
  • Посмотрите на строку 105, где ваша сборка не удалась

Я предполагаю, что это будет цель buildJDTProject. Я предполагаю, что цель содержит атрибут workspaceid, который представляется недопустимым.

Вы можете удалить атрибут или выяснить, почему он был включен в первую очередь. Может быть, он работает с другой версией вашей библиотеки ant jdt?

Еще два предположения (я не знаком с ant4eclipse BTW). Относительно задачи buildJdtProject ant4eclipse ...

В документе написано

Либо «workspaceDirectory», либо 'workspaceId' должен быть указан

Вы передаете workspaceDirectory в цель в вашем скрипте сборки. Возможно workspaceId указано по умолчанию в макросе в этом импортированном файле. Если это так, возможно, вы в конечном итоге определили оба значения workspaceDirectory И workspaceId, и это недопустимо. Однако эта идея не соответствует полученному сообщению об ошибке.

В качестве альтернативы, возможно, ant4eclipse учитывает регистр имен атрибутов. Это было бы необычно для Ant, как правило, без учета регистра. Но документ ant4eclipse дает имя атрибута как workspaceId, а ваше сообщение об ошибке говорит, что workspaceid не поддерживается. Поэтому, возможно, попробуйте изменить регистр в этом импортированном файле.

...