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にソース・ファイルを含める場合はこのようにする
コメント
コメントを投稿