LoginSignup
4
2

More than 5 years have passed since last update.

MavenビルドしてたプロジェクトをAntでビルドできるようにした話

Last updated at Posted at 2017-07-21

はじめに

去年、好きに作って良いと言われたので、いつもどおりMavenプロジェクト作ってMavenビルドしていた仕事で、
客先に引き渡す前のリーダーチェックで、
「Mavenとかよく判らんし、インターネットからよく判らない手続きで依存ファイルを落とされるの嫌だ。
リテラシー低い人間に合わせてくれ。」
と、言われたので、イラっとしながらAntビルドできるようにしたときのTIPSです。

ソース

最新のものは、Gistに乗っけてます。
https://gist.github.com/sh-ogawa/d74fd3b7d47169a1f2f64a6bcf6c6f45

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

  <property file="build.properties" />

  <path id="class.path">
    <fileset dir="${libDir}">
      <include name="**/*.jar" />
    </fileset>
  </path>

  <target name="build" depends="clean,compile,jar" />

  <target name="clean">
    <delete dir="${destDir}" />
    <mkdir dir="${destDir}"/>
    <mkdir dir="${destDir}/classes"/>
  </target>

  <target name="compile"
    description="ソースコードのコンパイルをします">
    <javac 
      srcdir="${srcDir}"
      destdir="${destDir}/classes"
      deprecation="${javac.deprecation}"
      debug="${javac.debug}"
      optimize="${javac.optimize}"
      encoding="${javac.encoding}"
      source="${javac.source}"
      target="${javac.target}"
      classpathref="class.path"
      includeantruntime="false" />

    <copy
      todir="${destDir}/classes"
      preservelastmodified="yes" >

      <fileset dir="${resourceDir}">
        <include name="**/*" />
      </fileset>
    </copy> 
  </target>

  <target name="jar">
    <jar jarfile="${destDir}/${ant.project.name}.jar">
      <zipgroupfileset dir="${libDir}" includes="*.jar" />
      <manifest>
        <attribute name="Main-Class" value="tools.main.Main" />
      </manifest>
      <fileset dir="${destDir}/classes">
      </fileset>
    </jar>
  </target>
</project>
build.properties
##
# dir setting (build.xml の basedir からの相対指定)
##
srcDir=./src/main/java
resourceDir=./src/main/resources
destDir=./ant/bin/
libDir=./ant/lib/

##
# javac setting
##
javac.debug=on
javac.deprecation=on
javac.optimize=off
javac.encoding=UTF-8
javac.target=8
javac.source=8

準備

  • build.propertiesはプロジェクトに応じて書き換えてください
  • jarを作る限りはbuild.xmlは原則、修正する必要はないです
    ※WEBアプリをビルドする場合は要修正

使い方

  • maven-dependency-pluginを使って依存しているJARファイルを以下にコピーする

/project-root/ant/lib

コマンド書くとこんな感じ

mvn dependency:copy-dependencies -DoutputDirectory=ant/lib

  • antビルドする

ant -f build.xml

そうすると、以下にパッケージングしたjarファイルができる

/project-root/ant/bin

最後に

Mavenなど、依存関係を自動解決してくれるツールを使えない人は、build.xmlも書けない人が多いので、
いい加減Antビルドするプロジェクトは無くなって欲しいです。
※前職での話です。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2