Да, это возможно с муравьем. Файл jar - это, по сути, zip со специальным файлом манифеста. Таким образом, чтобы распаковать, нам нужно распаковать банки. Ant включает в себя задачу распаковать .
Чтобы разархивировать / разархивировать все файлы jar в вашем проекте:
<target name="unjar_dependencies" depends="clean">
<unzip dest="${build.dir}">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</unzip>
</target>
Очевидно, вам нужно сначала объявить $ {build.dir} и $ {lib.dir}. Строка <include name="**/*.jar" />
говорит муравью включить все файлы, которые заканчиваются расширением jar, вы можете настроить его, чтобы удовлетворить ваши потребности.
Чтобы упаковать все в банку, вы используете задачу jar :
<target name="make_jar" depends="compile, unjar_dependencies">
<jar basedir="${build.dir}"
destfile="${dist.dir}/${project_name}.jar">
<manifest>
<attribute name="Main-Class" value="${mainclass}" />
</manifest>
<fileset dir="${build.dir}">
<include name="**/*.class" />
</fileset>
<fileset dir="${src.dir}">
<include name="applicationContext.xml" />
<include name="log4j.properties" />
</fileset>
</jar>
</target>
В этом примере мы включаем разные наборы файлов. В один набор файлов мы включаем все скомпилированные классы. В другой набор файлов мы включаем два файла конфигурации, от которых зависит данный проект.