eclipseのプロジェクトのエクスポートで作ったjarとantで作成したjarのclassファイルを同一にする方法


普通にやったら、eclipseでJARをエクスポートしたときと
antでbuildしたときのjarに含まれるclassファイルがバイナリレベルでことなっていたので
バイナリレベルで同一するために調査した。

[プロジェクト]

 [build.xml]

<?xml version="1.0" encoding="UTF-8"?>
<project name="JarAntBuildTest" default="build" basedir=".">
    <target name="build">

        <delete dir="build" />
        <mkdir dir="build" />

        <typedef name="ecj" classname="org.eclipse.jdt.core.JDTCompilerAdapter">
            <classpath>
                <fileset dir="D:\pleiades-4.6.2-java-win-64bit-jre_20161221\pleiades\eclipse\plugins" includes="*.jar" />
            </classpath>
        </typedef>

        <javac srcdir="src" destdir="build" target="1.8" source="1.8" debug="true" debuglevel="lines,vars,source"
            compiler="org.eclipse.jdt.core.JDTCompilerAdapter" includeantruntime="false">
            <ecj />
            <include name="**/*.java" />
        </javac>
        <jar basedir="build" destfile="sample.jar" />
    </target>

</project>

①eclipseではECJというjavaコンパイラを使っているために、build.xmlでECJを使うようにする。
参考)https://knjname.hateblo.jp/entry/2014/07/06/025542


②Projectの設定により準拠バージョンをbuild.xmlに追記する


 ③Projectの設定によりクラスファイルの設定をbuild.xmlに追記する


debug属性は、いずれかがチェックされていた場合に「debug="true"」追加すること
debuglevel属性は、チェックボックスのチェックの状態により変更すること
 生成されたクラス・ファイルに変数属性を追加(vars)
 生成されたクラス・ファイルに行番号属性を追加(lines)
 生成されたクラス・ファイルにソース・ファイルを追加(source)

④ちなみに、jarにソース・ファイルを含める場合はこのようにする


コメント

このブログの人気の投稿

ubuntu18.04でカーネルのダウングレード

java apache commons io を使って文字コードを変換する方法

Android端末(OS:5.1.1,F-01H)でメール送信もできるWebサーバを作る