Developement/Java
jar로 배포할 때 참조하는 여러 라이브러리를 하나로 배포
highheat
2020. 10. 11. 16:04
ant를 이용하면 현재 개발하는 eclipse project를 jar로 빌드하면서 참조하는 라이브러리를 하나로 합치는 기능이 있습니다.
<project name="netClient" default="jar" basedir=".">
<description>
공통모듈
</description>
<!-- set global properties for this build -->
<property name="src.dir" location="src" />
<property name="build.dir" location="bin" />
<property name="dist.dir" location="dist" />
<property name="dist.lib.dir" location="dist/lib" />
<property name="lib.dir" location="lib" />
<path id="classpath">
<fileset dir="${basedir}/">
<include name="${lib.dir}/*.jar" />
</fileset>
</path>
<!-- Group all dependencies into a big hieClient.jar -->
<target name="copy-dependencies">
<mkdir dir="${dist.lib.dir}" />
<jar jarfile="${dist.lib.dir}/dependencies-all.jar">
<zipgroupfileset dir="${lib.dir}">
<include name="**/*.jar" />
</zipgroupfileset>
</jar>
</target>
<!-- jar it, extract above dependency-all.jar and zip it with project files -->
<target name="jar" depends=" copy-dependencies" description="package, output to JAR">
<mkdir dir="${dist.dir}" />
<mkdir dir="${dist.lib.dir}" />
<jar jarfile="${dist.dir}/${ant.project.name}.jar" basedir="${build.dir}">
<zipfileset src="${dist.lib.dir}/dependencies-all.jar" excludes="META-INF/*.SF" />
</jar>
</target>
<target name="jar2" description="package, output to JAR">
<mkdir dir="${dist.dir}" />
<jar jarfile="${dist.dir}/${ant.project.name}.jar" basedir="${build.dir}">
<zipgroupfileset dir="${lib.dir}">
<include name="**/*.jar" />
<exclude name="META-INF/*.SF"/>
</zipgroupfileset>
</jar>
</target>
</project>
copy-dependencies, jar 두개의 task로 작업이 가능하면 jar2는 이두개를 하나로 합친경우입니다.