1

これが私のビルドファイルです:

<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

誰か助けてくれませんか?

4

1 に答える 1

1

インポートするファイルにエラーがあります。

<import file = "/ data / temp / ANT / ANT4 / macros / a4e-jdt-macros.xml" />

buildJDTProjectあなたのターゲットはそこで定義されていると思います、そしてそれがどのように定義されているかに誤りがあります。

  • そのファイルを見てください/data/temp/ANT/ANT4/macros/a4e-jdt-macros.xml
  • ビルドが失敗する105行目を見てください

目標に向かっていると思いbuildJDTProjectます。ターゲットにworkspaceid属性が含まれていると思いますが、これは違法のようです。

属性を削除するか、そもそもなぜそれが含まれていたのかを理解することができます。多分それはあなたのantjdtライブラリの異なるバージョンで動作しますか?

さらに2つの推測(私はant4eclipse BTWに精通していません)。ant4eclipseのbuildJdtProjectタスクについて...

文書によると

'workspaceDirectory'または'workspaceId'のいずれかを指定する必要があります

workspaceDirectoryビルドスクリプトでターゲットを渡します。インポートworkspaceIdされたファイルのマクロでデフォルトで指定されている可能性があります。もしそうなら、多分あなたは両方のworkspaceDirectoryANDworkspaceIdが定義されてしまい、それは違法です。ただし、そのアイデアは、表示されるエラーメッセージと一致しません。

あるいは、ant4eclipseは属性名について大文字と小文字を区別する場合があります。これはAntにとっては珍しいことであり、一般的に大文字と小文字は区別されません。しかし、ant4eclipseドキュメントは属性名をとして与え、workspaceIdエラーメッセージはworkspaceidサポートされていないと言っています。したがって、インポートされたファイルの大文字と小文字を変更してみてください。

于 2011-06-15T11:26:39.843 に答える