JavaとAntを使用して、ビルドプロセスを自動化する方法?

Automate build with Ant

Antを使用したビルドを自動化

概要:

この文書では、ビルド・ツール・アリについて議論し、これを使用すると、私たちは、Javaベースのアプリケーションのビルド・メカニズムを自動化する方法. 今日の時代のアリではJava開発の不可欠な一部となっています. ほとんどのお客様は、お届けのソースコードの一部として自動ビルドスクリプトを持っているのが好き. この理由は、ほとんどのスクリプトの知識を持つ誰もが詳細にアプリケーションを知らなくても展開可能バイナリを生成することができるように蟻が提供するシンプルさ.

はじめに:
ApacheのANTは、一般的なビルドツールです. 「もう一つのきちんとしたツール」のため略称ANTスタンド. このツールは、UNIXでのmakeユーティリティーと似ていますが、Javaを使用して実装されています. これは主にJavaベースのソースコードのバイナリを構築し、事前に定義されているアプリケーションサーバに生成されたバイナリを展開するために使用されます. また、コードベースのJavadocを生成し、全体のコードベースのためのユニットテストスイートを実行するために使用することができ. JUNITと共同でAntは、テスト駆動型開発アプローチに従うことを、開発者を支援.

Ant requires Java compiler to be installed having the environment variable JAVA_HOME set with its adequate value. Ant uses an XML file to define the build procedure. このファイルのデフォルト名はbuild.xmlのです. 一部の開発者はまた、いくつかのプロパティe.gを定義するプロパティ、すなわちbuild.propertiesファイル使用します. 必要性に基づいて随時変更するために必要なビルドバージョン番号およびその他の環境パラメータ.

インスタレーション:
FEDORA: RHELで, ANTは、コマンドを使用してインストールすることができます - yumのRPMを使用してアリインストールするか、それをインストールすることができます - 私は、コマンド. この場合は、まずアリのパッケージをダウンロードしてください.

DEBIAN: Ubuntuで, ANTは、コマンドを使用してインストールすることができます - apt-getのアリをインストール.

Windowsの: Windows環境で、私たちはant_をダウンロードする必要があります<VERSION_NO>.zipファイル. このZIPバンドルはフォルダに抽出する必要があります. このフォルダには、環境変数として定義する必要がありますANT_HOME.

サンプルbuild.xmlファイルは下のように示されています:

LISTING 1: サンプルbuild.xmlファイル

[Code]

<?XMLバージョン=”1.0″?>

<プロジェクト名=”Antのテスト” デフォルト=”メイン” BASEDIR =”.”>

<!– 後で使用できる変数を設定します。. –>

<!– プロパティの値を介してアクセスされます ${} –>

<プロパティ名=”src.dir” 場所=”SRC” />

<プロパティ名=”build.dir” 場所=”bin” />

<プロパティ名=”dist.dir” 場所=”DIST” />

<プロパティ名=”docs.dir” 場所=”ドキュメント” />

<!– 既存のビルドを削除します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”クリーン”>

<= DIRを削除”${build.dir}” />

<= DIRを削除”${docs.dir}” />

<= DIRを削除”${dist.dir}” />

</ターゲット>

<!– ビルドを作成します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”MAKEDIR”>

<MKDIR DIR =”${build.dir}” />

<MKDIR DIR =”${docs.dir}” />

<MKDIR DIR =”${dist.dir}” />

</ターゲット>

<!– Javaコードをコンパイルします (JUnitのためのライブラリの使用を含みます –>

<ターゲット名=”compile” =依存”クリーン, MAKEDIR”>

<javac SRCDIR =”${src.dir}” DESTDIR =”${build.dir}”>

</javacの>

</ターゲット>

<!– Javadocを作成します。 –>

<ターゲット名=”ドキュメント” =依存”compile”>

<Javadocのパッケージ名=”SRC” ソースパス=”${src.dir}” DESTDIR =”${docs.dir}”>

<!– どのファイルを定義します。 / ディレクトリが含まれるはずです, 我々はすべて含まれ –>

<ファイルセットDIR =”${src.dir}”>

<=名を含めます”**” />

</ファイルセット>

</Javadocの>

</ターゲット>

<!–展開可能なjarファイルを作成します。 –>

<ターゲット名=”jar” =依存”compile”>

<ジャーのdestFile =”${dist.dir}\in.kolkalta.build.test.ant.jar” BASEDIR =”${build.dir}”>

<マニフェスト>

<属性名=”主なクラス” 値=”test.Main” />

</マニフェスト>

</jar>

</ターゲット>

<ターゲット名=”メイン” =依存”compile, jar, ドキュメント”>

<説明>主要目標</説明>

</ターゲット>

</プロジェクト>

[/Code]

ANTを使用したオートメーション:
AntはJava開発者に大きな助けを提供します. ほぼすべてのJava開発者は、ユニットテストを実行すると、アプリケーション・サーバーにデプロイすることができバイナリ配布ファイルを作成するの世話をすることができますスクリプトを持って好きになるでしょう. Antはまた、コードベース上でユニットテストを実行するために使用される自動化されたスクリプトを実行する方法を提供します. Thus, それは、テスト駆動型開発アプローチを使用する開発者への支援を提供します. 私たちは、テスト駆動開発の方法論JUNITに知っているように強制され, 我々は一度にすべてのJUnitテストケースを実行する自動化スクリプトを使用している場合、それは常に追加された利点であります. だけでなく、私たちが持っている場合は、このスクリプトを使用することもできることを箔押し継続的インテグレーションe.gを持っています. ハドソン. 私たちの次のサンプルコードは、JUnitを使用し、ANTを使用する方法を示し.

LISTING 2: サンプルのJavaファイル

[Code]

package com.home.junit;

公共 クラス SampleAdd {

公共 int型 加える(int型 X, int型 と) {

リターン X + と;

}

}

[/Code]

LISTING 3: 対応JUNITファイル

[Code]

パッケージcom.home.junit;

輸入org.junit.After;

輸入org.junit.Assert;

輸入org.junit.Before;

輸入org.junit.Test;

パブリッククラスSampleAddTest {

プライベートSampleAdd sampleClass;

@前

公共ボイドのsetUp() {

sampleClass =新しいSampleAdd();

}

@テスト

公共ボイドtestAdd() {

Assert.assertEquals(5, sampleClass.add(3, 2));

}

@After

公共ボイドsettleDown() {

sampleClass = NULL;

}

}

[/Code]

LISTING 4: JUnitテストをコンパイルして実行するためのAntスクリプト

[Code]

<?XMLバージョン=”1.0″?>

<プロジェクト名=”JUNIT” デフォルト=”メイン” BASEDIR =”..”>

<!– 後で使用できる変数を設定します。. –>

<!– プロパティの値を介してアクセスされます ${} –>

<プロパティ名=”src.dir” 場所=”SRC” />

<プロパティ名=”test.dir” 場所=”テスト” />

<プロパティ名=”build.dir” 場所=”bin” />

<プロパティ名=”build.test.dir” 場所=”ビン/テスト” />

<!– JUnitのTESTINのために使用される変数 –>

<プロパティ名=”test.report.dir” 場所=”カスタマイズポート” />

<!– junit.jarをとコンパイル後のクラスが含まれてクラスパスを定義します。–>

<パスID =”junit.class.path”>

<pathelement場所=”LIB / JUnitの-4.11.jar” />

<pathelement場所=”LIB / hamcrestコア-1.3.jar” />

<pathelement場所=”${build.dir}” />

</パス>

<!– 既存のビルドを削除します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”クリーン”>

<= DIRを削除”${build.dir}” />

<= DIRを削除”${test.report.dir}” />

</ターゲット>

<!– ビルドを作成します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”MAKEDIR”>

<MKDIR DIR =”${build.dir}” />

<MKDIR DIR =”${build.test.dir}” />

<MKDIR DIR =”${test.report.dir}” />

</ターゲット>

<!– Javaコードをコンパイルします (JUnitのためのライブラリの使用を含みます –>

<ターゲット名=”compile” =依存”クリーン, MAKEDIR”>

<javac SRCDIR =”${src.dir}” DESTDIR =”${build.dir}”>

<クラスパスREFID =”junit.class.path” />

</javacの>

<javac SRCDIR =”${test.dir}” DESTDIR =”${build.test.dir}”>

<クラスパスREFID =”junit.class.path” />

</javacの>

</ターゲット>

<!– JUnitテストを実行します。 –>

<!– 出力はXMLです, また、無地かもしれません–>

<ターゲット名=”JUnitの” =依存”compile”>

<JUnitのprintsummary =”on” フォーク=”真” haltonfailure =”はい”>

<クラスパスREFID =”junit.class.path” />

<クラスパス>

<pathelement場所=”${build.test.dir}”/>

</クラスパス>

<フォーマッタタイプ=”XML” />

<batchtest todirの=”${test.report.dir}”>

<ファイルセットDIR =”${test.dir}”>

<=名を含めます”**/*テスト*の.javaファイル” />

</ファイルセット>

</batchtest>

</JUnitの>

</ターゲット>

<ターゲット名=”メイン” =依存”compile, JUnitの”>

<説明>主要目標</説明>

</ターゲット>

</プロジェクト>

[/Code]

私たちは、このスクリプトを実行すると、, それは、最初のコードベースをコンパイルしてからコンパイルされたコードにJUnitテストを実行し、最終的にテストレポートを生成し、. 試験報告書は、任意の形式で生成することができます. 利便性のために我々は、XML形式でこれを生成しました.

LISTING 5: XML形式で生成されたテストレポート

[Code]

<?XMLバージョン=”1.0″ エンコーディング=”UTF-8″?>

-<テストスイートのタイムスタンプ=”2013-10-26T18:52:45″ 時間=”0.077″ テストの=”1″ 名前=”com.home.junit.SampleAddTest” ホスト名=”INDTAPPL132-001″ 障害=”0″ エラー=”0″>-<properties><プロパティ名=”java.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”sun.java.launcher” 値=”SUN_STANDARD”/><プロパティ名=”eclipse.pdebuild.templates” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/templates/”/><プロパティ名=”sun.management.compiler” 値=”HotSpotのクライアントコンパイラ”/><プロパティ名=”os.name” 値=”Windows 7の″/><プロパティ名=”sun.boot.class.path” 値=”C言語:\プログラムファイルのJava jre7 libに resources.jar;C言語:\プログラムファイルのJava jre7 libに rt.jarの;C言語:\プログラムファイルのJava jre7 libに sunrsasign.jar;C言語:\プログラムファイルのJava jre7 libにのjsse.jar;C言語:\プログラムファイルのJava jre7 libに jce.jar;C言語:\プログラムファイルのJava jre7 libに charsets.jar;C言語:\プログラムファイルのJava jre7 libに jfr.jar;C言語:\プログラムファイルのJava jre7 クラス”/><プロパティ名=”sun.desktop” 値=”窓”/><プロパティ名=”java.vm.specification.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”ant.home” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300″/><プロパティ名=”java.runtime.version” 値=”1.7.0_45-b18″/><プロパティ名=”user.name” 値=”utpalb”/><プロパティ名=”build.dir” 値=”F:\WorkRnDSpaceJunitbin”/><プロパティ名=”user.language” 値=”en”/><プロパティ名=”test.report.dir” 値=”F:\WorkRnDSpaceJunittestreport”/><プロパティ名=”sun.boot.library.path” 値=”C言語:\Program FilesJavajre7bin”/><プロパティ名=”ant.project.default-target” 値=”メイン”/><プロパティ名=”ant.project.name” 値=”JUNIT”/><プロパティ名=”java.version” 値=”1.7.0_45″/><プロパティ名=”user.timezone” 値=””/><プロパティ名=”sun.arch.data.model” 値=”32″/><プロパティ名=”java.endorsed.dirs” 値=”C言語:\Program FilesJavajre7libendorsed”/><プロパティ名=”sun.cpu.isalist” 値=”pentium_pro mmx pentium_pro pentium mmx pentium i486 i386 i86″/><プロパティ名=”sun.jnu.encoding” 値=”Cp1252″/><プロパティ名=”file.encoding.pkg” 値=”sun.io”/><プロパティ名=”file.separator” 値=”\”/><プロパティ名=”java.specification.name” 値=”Java Platform API Specification”/><プロパティ名=”java.class.version” 値=”51.0″/><プロパティ名=”user.country” 値=”US”/><プロパティ名=”java.home” 値=”C言語:\Program FilesJavajre7″/><プロパティ名=”java.vm.info” 値=”mixed mode, sharing”/><プロパティ名=”ant.file” 値=”F:\WorkRnDSpaceJunitbuildbuild.xml”/><プロパティ名=”os.version” 値=”6.1″/><プロパティ名=”path.separator” 値=”;”/><プロパティ名=”java.vm.version” 値=”24.45-b08″/><プロパティ名=”user.variant” 値=””/><プロパティ名=”ant.library.dir” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300lib”/><プロパティ名=”java.awt.printerjob” 値=”sun.awt.windows.WPrinterJob”/><プロパティ名=”sun.io.unicode.encoding” 値=”UnicodeLittle”/><プロパティ名=”ant.file.type.JUNIT” 値=”ファイル”/><プロパティ名=”awt.toolkit” 値=”sun.awt.windows.WToolkit”/><プロパティ名=”user.script” 値=””/><プロパティ名=”ant.file.JUNIT” 値=”F:\WorkRnDSpaceJunitbuildbuild.xml”/><プロパティ名=”eclipse.pdebuild.scripts” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/scripts/”/><プロパティ名=”user.home” 値=”C言語:\Usersutpalb”/><プロパティ名=”java.specification.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”test.dir” 値=”F:\WorkRnDSpaceJunittests”/><プロパティ名=”java.library.path” 値=”C言語:\Program FilesJavajre7bin;C言語:\WindowsSunJavabin;C言語:\Windowssystem32;C言語:\Windowsの;C言語:/Program Files/Java/jre7/bin/client;C言語:/Program Files/Java/jre7/bin;C言語:/Program Files/Java/jre7/lib/i386;C言語:\Windowssystem32;C言語:\Windowsの;C言語:\WindowsSystem32Wbem;C言語:\WindowsSystem32WindowsPowerShellv1.0;C言語:\Program FilesJavajdk1.6.0_10bin;それ:\apache-ant-1.8.2-binapache-ant-1.8.2bin;C言語:\Program FilesLiquid TechnologiesLiquid XML Studio 2011XmlDataBinder9Redist9cppwin32bin;C言語:\Program FilesTortoiseSVNbin;それ:\Program FilesAndroidandroid-sdkplatform-tools;それ:\Program FilesAndroidandroid-sdktools;C言語:\Program FilesQuickTimeQTSystem;D:\SunAppServerbin;9;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipse;;.”/><プロパティ名=”java.vendor.url” 値=”HTTP://java.oracle.com/”/><プロパティ名=”java.vm.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”java.runtime.name” 値=”ジャワ(TM) SE Runtime Environment”/><プロパティ名=”sun.java.command” 値=”org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner com.home.junit.SampleAddTest filtertrace=true haltOnError=false haltOnFailure=true formatter=org.apache.tools.ant.taskdefs.optional.junit.SummaryJUnitResultFormatter showoutput=false outputtoformatters=true logfailedtests=true logtestlistenerevents=false formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,F:\WorkRnDSpaceJunittestreportTEST-com.home.junit.SampleAddTest.xml crashfile=F:\WorkRnDSpaceJunitjunitvmwatcher6288340937110531134.properties propsfile=F:\WorkRnDSpaceJunitjunit7583515827572177542.properties”/><プロパティ名=”java.class.path” 値=”F:\WorkRnDSpaceJunitlibjunit-4.11.jar;F:\WorkRnDSpaceJunitlibhamcrest-core-1.3.jar;F:\WorkRnDSpaceJunitbin;F:\WorkRnDSpaceJunitbintests;F:\WorkRnDSpaceJunit;C言語:\Program FilesJavajdk1.6.0_10jrelibrt.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-launcher.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-junit.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-junit4.jar”/><プロパティ名=”ant.version” 値=”Apache Ant(TM) version 1.8.2 compiled on December 20 2010″/><プロパティ名=”java.vm.specification.name” 値=”Java Virtual Machine Specification”/><プロパティ名=”java.vm.specification.version” 値=”1.7″/><プロパティ名=”sun.cpu.endian” 値=”little”/><プロパティ名=”sun.os.patch.level” 値=”Service Pack 1″/><プロパティ名=”eclipse.pdebuild.home” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/./”/><プロパティ名=”java.io.tmpdir” 値=”C言語:\UsersutpalbAppDataLocalTemp”/><プロパティ名=”java.vendor.url.bug” 値=”HTTP://bugreport.sun.com/bugreport/”/><プロパティ名=”os.arch” 値=”x86″/><プロパティ名=”java.awt.graphicsenv” 値=”sun.awt.Win32GraphicsEnvironment”/><プロパティ名=”java.ext.dirs” 値=”C言語:\Program FilesJavajre7libext;C言語:\WindowsSunJavalibext”/><プロパティ名=”user.dir” 値=”F:\WorkRnDSpaceJunitbuild”/><プロパティ名=”build.test.dir” 値=”F:\WorkRnDSpaceJunitbintests”/><プロパティ名=”line.separator” 値=” “/><プロパティ名=”java.vm.name” 値=”Java HotSpot(TM) Client VM”/><プロパティ名=”basedir” 値=”F:\WorkRnDSpaceJunit”/><プロパティ名=”ant.java.version” 値=”1.7″/><プロパティ名=”ant.core.lib” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant.jar”/><プロパティ名=”file.encoding” 値=”Cp1252″/><プロパティ名=”java.specification.version” 値=”1.7″/><プロパティ名=”src.dir” 値=”F:\WorkRnDSpaceJunitsrc”/><プロパティ名=”ant.project.invoked-targets” 値=”メイン”/></properties><testcase time=”0.003″ 名前=”testAdd” classname=”com.home.junit.SampleAddTest”/>-<system-out>

<![CDATA[]]>

</system-out>-<system-err>

<![CDATA[]]>

</system-err></testsuite>

[/Code]

結論:

  • Apache Antを以下の目的のためにJava開発者が使用するJavaベースのユーティリティ
    • To generate the binaries from the source code
    • To generate javadocs for the source code
    • To run JUNIT test cases on a code base
  • ANT in collaboration with JUNIT, helps the java developers to follow the Test Driven Development methodology

 

Tagged on: , ,
============================================= ============================================== Amazonで最高のTechAlpine Booksを購入してください,en,電気技師CT栗,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share