2017-01-11 13 views
0

私の驚いたことに、Java用Eclipse(Neon)によって生成されたbuild.xmlファイルには、jarタスクの呼び出しを含む要素がありません。多くの場合、コード生成では、コード生成を完全に再生成または回避できるように、コードを使用して編集する必要があると思います。生成されたファイルのコメントは、インポートによって機能を拡張することによって編集を避けることができる可能性があることを示唆しています。Eclipseの生成されたantスクリプトとjarファイルを作成する方法はありますか?

<!-- WARNING: Eclipse auto-generated file. 
       Any modifications will be overwritten. 
       To include a user specific buildfile here, simply create one in the same 
       directory with the processing instruction <?eclipse.ant.import?> 
       as the first entry and export the buildfile again. --> 

私はexport.xmlと呼ばれる第二のファイルに<?eclipse.ant.import?>要素を使用することができるだろうと思いました。 antのスクリプトでは、1つのビルドファイルにつき1つのプロジェクトが想定されているので、最初のプロジェクトのターゲットに依存する2番目のプロジェクトがあります。

build.xmlを再生成すると、期待通りに「インポート」が含まれていることがわかります。

<import file="export.xml"/>

残念ながら、これは動作しません。コマンドラインから実行するantを実行すると、エクスポート/ jarプロジェクトが無視されるように見えます。

(7行にネストされた)import要素で生成されたスクリプト...

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project basedir="." default="build" name="ohana1"> 
    <property environment="env"/> 
    <property name="debuglevel" value="source,lines,vars"/> 
    <property name="target" value="1.8"/> 
    <property name="source" value="1.8"/> 
    <import file="export.xml"/> 
    <path id="ohana1.classpath"> 
     <pathelement location="bin"/> 
     <pathelement location="../export/ohana1/commons-collections-3.2.1.jar"/> 
    </path> 
    <target name="init"> 
     <mkdir dir="bin"/> 
     <copy includeemptydirs="false" todir="bin"> 
      <fileset dir="src"> 
       <exclude name="**/*.launch"/> 
       <exclude name="**/*.java"/> 
      </fileset> 
     </copy> 
    </target> 
    <target name="clean"> 
     <delete dir="bin"/> 
    </target> 
    <target depends="clean" name="cleanall"/> 
    <target depends="build-subprojects,build-project" name="build"/> 
    <target name="build-subprojects"/> 
    <target depends="init" name="build-project"> 
     <echo message="${ant.project.name}: ${ant.file}"/> 
     <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}"> 
      <src path="src"/> 
      <classpath refid="ohana1.classpath"/> 
     </javac> 
    </target> 
    <target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/> 
    <target description="copy Eclipse compiler jars to ant lib directory" name="init-eclipse-compiler"> 
     <copy todir="${ant.library.dir}"> 
      <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
     </copy> 
     <unzip dest="${ant.library.dir}"> 
      <patternset includes="jdtCompilerAdapter.jar"/> 
      <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
     </unzip> 
    </target> 
    <target description="compile project with Eclipse compiler" name="build-eclipse-compiler"> 
     <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
     <antcall target="build"/> 
    </target> 
</project> 

export.xmlファイルは、Eclipseことjar ...

<?eclipse.ant.import?> 
<project basedir="." default="export" name="ohana1Export"> 
    <target depends="build,make-jar" name="export"/> 
    <target name="make-jar"> 
     <jar destfile="../export/ohana1/${ant.project.name}.jar" basedir="bin"/> 
    </target> 
</project> 

ノートを作るためのものこのプロジェクト/ビルドファイルには依存ファイルであるbuildという名前のターゲットが存在しないため、Antエディタはこのexport.xmlファイルについて不平を言います。 buildターゲットはbuild.xmlに生成されています。そのエラーは「ダム」エディターからのものであるため、antの実行を先に進めました。コマンドラインからantを呼び出すと、jarファイルが作成されていないことがわかりました。

.jarファイルをエクスポートする必要があり、人間がすべての要件を満たすantスクリプトを維持する必要がある場合、Eclipseのantスクリプトジェネレータは役に立たないと結論してください。

答えて

0

私の意見では、build.xmlは、Eclipse Neonのように、.jarを作成することを意図しています。

具体的には以下を実行してください。

  • .jarをエクスポートする簡単なantスクリプトを手動で作成します。このポストの一番下にあるリンクは、スクリプトがどのように表示されるかを逐語的に示しています。 をNew > Other > XML > XML Fileで組み込み、makeJar.xmlと呼ばれるこの新しいファイルを作成して保存することができます。 Package Explorerに表示されているアイコンが依然としてプレーンなXMLファイルアイコンである場合、プロジェクトを更新するとアイコンがAntファイルアイコンに変更されることがあります。今後はOpen Withを使用してXML Editorの代わりにAnt Editorを取得することができます。このスクリプトは、ユーザーがEclipse経由で実行する.jarの手動エクスポートを置き換えます。
  • このスクリプトはProject > Properties > Buildersに追加できます。ビルダーのリストの2番目に配置されます。ビルダーのリストの最初のものは既に存在するはずのJava Builderです。 Eclipseビルドが呼び出されると、ビルダーのリスト全体が、ビルダーのリストに示された順序で処理されます。したがって、.classファイルだけでなく、.jarも生成されます。達成され、どのよう

は間違いなく.jarを生成するために失敗した試みでエクスポートbuild.xmlを使用してのポイントだった.class世代と.jar世代が今統合されているので、大幅な自動化、です。

新しいビルダーの作成に使用できるProject > Properties > Buildersというダイアログがあります。 Newを選択し、Ant Builderを選択します。私はBuildermakeJarという名前を付けました。ここで

Builders

あなたが.jarファイルを作成し、あなたの手で書かれたスクリプトAntあるごbuildfileに閲覧できるようになり、新たなAntビルダーのためのダイアログです。この例では、スクリプトはmakeJar.xmlです。また、スクリプトを実行するときに使用するbase directoryを参照することもできます。

Configuration of the new Ant Builder

新しいビルダーを設定した後、プロジェクト「きれい」またはプロジェクトも.jar.classファイルとを作成する「を構築」。


このトピックに関するEclipseのドキュメントは、このリンクにあります。命令が含まれている正確なページをリンクすることは不可能なので、ドキュメンテーションツリーを「プロジェクトビルダーとしてのAntビルドファイル」のセクションまでブラウズする必要があります。

Link to Eclipse and Ant

関連する問題