OpenNET: ������ - Ant �� 10 ����� (make ant java) (original) (raw)

Ant �� 10 ����� (make ant java)

<< ���������� ������ ������ src / ������ ��������� >>

�������� �����: make, ant, java, (����� ������� ���������)

From: http://javatech.info Date: Mon, 10 Apr 2006 18:21:07 +0000 (UTC) Subject: Ant �� 10 �����

��������: docs.javatech.info

(������� Ant in Ten Steps by Russ Olsen)

����� � ���, ��� ����� Ant ������ �� ��������� ���� - �� ����� ���� �� ����, � �� ��������� �� ���� ����� �� ���������� ���. ���� ������ ��������� ��������� ��� ������ � ������ ������� Ant, ����� �� ������� ������ ������� �����. ����, ��� 10 �����, ������� �� ������ ����� �� ���� �����������.

����������

    * 1 ��� 1: ������ Ant?
    * 2 ��� 2: ��� �������� Ant
    * 3 ��� 3: ���� ������ �������� Ant.
    * 4 ��� 4: ����������� � Ant
    * 5 ��� 5: ����������� �������
    * 6 ��� 6: �������������� Java
    * 7 ��� 7: Jar'� � Filesets
    * 8 ��� 8: �������� ��� ����������, ��...
    * 9 ��� 9: ����� Properties
    * 10 ��� 10: ������ �� �������
    * 11 � ����������

��� 1: ������ Ant?

Ant - ��� ����������, ������� ������� ���������������� ������� ������ ��. � ������ Ant ������� �� ���� ����� �������� ������ �������������� �����, ������� � ������ �� CD.

������� Ant'� ������ ����������, ��� ����� Ant, ���� ������ ������� ������� ���������. ��������, ���� � ���� ��������������� ��������� Java ������ � ������� Jar �� ���������� ������ �������, �� � ���� ������ ������� ������� ������:

       $ javac -d build src/Main.Java src/Utils.src/Java GUI.Java
       $ cd build
       $ jar -cvf ../mystuff.jar Main.class Utils.class GUI.class

��� ���������, �� ���� ����� ����� ��������� ������ � ������������, �� �� ������ �����, ���� ���� ������� ������ �������� ��� ������ � ������ Java ������.

�������, �� ������ �������� ��� ��� � �������� �������� ��� Perl:

       #!/bin/sh
       javac -d build src/Main.Java src/Utils.Java src/GUI.Java
       cd buildre are ten things you need to know about this tool.
       jar -cvf ../mystuff.jar Main.class Utils.class GUI.class
       
       

�������� � ���, ��� �������� � Perl �������� ������������� ������ ���������� - ������ �� ������� ��, �� ������ �������� web ������ ��� �� ��� ������ �� Perl. Ant ���������������� �� ����� - �� ������ ��. �� �����, � ���������� ����� ����������� ����� ������ ��� ������� ���� ��. Ant ������ ��� ������ ��� �����, ��� �� ����������� ������� �� - ��� ������ �� ������ ������������ Ant ��� ������ � ������� ������ ��������.

��� ������� �������� ��������������, ����� �� ��������� ��������� ������, �� � �������� ��������� ������������������ ��������, ����� ��� Ant ����� ���� ������� ����� ������ � �������.

��� 2: ��� �������� Ant

Ant ������� ����� �� �������. ������ ��� ���� �������� ��, ��� ������� ������������ - �������� ��� �� Java, ���������, ���������� �� ������ ������, ����������� ������������� � �.�. ��� ������ ��������� �� ������ - ���������������� ���������, ������� � �������������.

� �������� ��������� �� ��������� ���� �������� ��������, Ant'� ���������� ������ � ���� build �����. Build ���� (����� ��������� ��� <<Ant ����>>, ��� <<build ��������>> (<<�������� ������>>) ��� <<���� build.xml>>) ���������� Ant'� ��� ���� ������, ����� ���������� �� ��� ���� (��� �������, �������� ���) � �� ��� �� ������. Build ���� ����� �� ��������� ���� - �� ������� ��� ��� ������� �� ������ ������ �����.

Build ���� �������� �������, ������� ��������� Ant'� ������ ���� ��������� �����:

��� 3: ���� ������ �������� Ant.

������ ������, ����� ��������� �� ��������, ���� � ����� ��������� Ant ����. ������������� �������� <> build ������.

       <project name="MyProject" default="all">
       <target name="all" description="Do the entire build" >
       <echo>I'm building my software</echo>
       </target>
       </project>

��� ������, ��� XML ����, ���������� ������� . �������� 2 ��������:

��� �������� ������ ������������, ������ ��� ����� �� ������������. ������� �� ��������� - ��� ��� ���� �������, ������� �� ������, ����� Ant �������� �� ���������. ��� ������� Ant �������� ���� �� �� ������� ���, ��� ��������.

����������� build ����� �������� �������� . �� ����, ���� ������� ������ ���������: ����� ������� ����� ��� ��������� <>, ������� ������� .

��� ���� ����� ��������� Ant ���-�� �������, �� ������ ��������� ������� Ant � ������� �� ����� ���� �������� ���������� ������:

       $ Ant -f build.xml
       Buildfile: build.xml

       all:
            [echo] I'm building my software

       BUILD SUCCESSFUL
       Total time: 1 second

����, ��� ����� ���������?

��� 4: ����������� � Ant

����� ���������� ���� � ����� ��� ����� ��������:

       <project name="02.depend" default="all" >

             <description>This is a project which uses dependancies</description>

             <target name="make.dirs" description="Make a dir">
                     <mkdir dir="build"/>
             </target>
    
             <target name="all" description="Do the build"  depends="make.dirs">
                     <echo>I'm building my software</echo>
             </target>
    
       </project>

��� ��� ��� �� ��������� ��� build ����� - ��� build.xml, �� �� ����� �������� �������� -f � ������ ������� Ant ��� ����������:

       $ Ant
       Buildfile: build.xml

       make.dirs:
           [ mkdir] Created dir: /home/russ/Ant_example/02.depend/build

       all:
            [echo] I'm building my software

       BUILD SUCCESSFUL
       Total time: 1 second

���� build ���� �������� ��� �������, ��� �������� <> � �����, <<make.dirs>>. <<make.dirs>> �������� ���������� � Ant ������� mkdir - Ant �������� ��� ���������� ������� �������� - ��� �������� ����� ����������. �������� �������� �� ��� ����, ��� ������� <> ��������� �� ��, ��� ��� ������� �� ������� <<make.dirs>>. ��� ����������� ��������, ��� ��� ���� ����� ������� <>, �� ������ ������� ������� <<make.dirs>>. ���� ����������� �������� �������� � ������ Ant'� - ������� ����� ������ �� ��������� Ant ������ ������� � ���������� ������� ������ �����������.

��� 5: ����������� �������

��� ��������� ������ �������� 3-� �������, ��� ��������� <>:

       <project name="nodefault" default="all" >

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="build"/>
             </target>

             <target name="all" description="Do the build"  depends="make.dirs">
                     <echo>I'm building my software</echo>
             </target>

             <target name="clean" description="Clean up">
                     <echo>I'm cleaning up.</echo>
                     <delete dir="build"/>
             </target>

       </project>

<> ������ ������� ������� ������, ������� ��������� �������� <<make.dirs>>. �� ������ ��������� <> ��� ������ ����� ������ ���� ��������������� ������.

�� ������, ��� <> �� �������� �������� �� ��������� � ������� �� ��������� �� ������� �� ����. ��� ��� �� �� ������� ��������� <>? ����� ������ ����������:

       $ Ant clean
       Buildfile: build.xml

       clean:
            [echo] I'm cleaning up.

       BUILD SUCCESSFUL
       Total time: 1 second

��� 6: �������������� Java

����, ����� ���������� ������� ���-������ �������� � Ant, ��������, ������������� ���-�� �� Java ����:

       <project name="MyProject" default="all" >

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="build"/>
                     <mkdir dir="build/class"/>
             </target>

             <target name="compile" description="compile java"  depends="make.dirs">
                     <javac destdir="build/class">
                             <src path="src"/>
                     </javac>
             </target>

             <target name="all" description="Do the build"  depends="compile"/>

             <target name="clean" description="clean up">
                     <echo>I'm cleaning up.</echo>
                     <delete dir="build"/>
             </target>

       </project>

������, ��� �� ����� ������� �� ��������� <>, ��������� �� <>, ������� �������� ������ javac, ���������� � Ant. ��� ��� ����������, ����� �� �������� ���� ��������:

       Ant
       Buildfile: build.xml
    
       make.dirs:
           [mkdir] Created dir: /home/rolsen/Documents/Ant/04.compile/build
           [mkdir] Created dir:
       /home/rolsen/Documents/Ant/04.compile/build/class
    
       compile:
           [javac] Compiling 1 source file to /home/russ/build/class

       all:

       BUILD SUCCESSFUL
       Total time: 2 seconds

���������� 2 ���������� ����������� ������ javac. ��-������, �� ������ �� ��������� ��������������� ����� java ������, ������� ������ �������������� - ���������� ������ ������� �������. ��-������, javac ����� ����������, ����� class ���� ���������� � �����, ��� java ����, � ���� ������, ��� ������ �� �������������. �� ������ ��������� ���, �������� ������ ������ - �� ������ ������ javac ������ �� �������������. ��� 2 ����������� �������� ��������� ������� ������ ��, ������������� �����. ��� ��� Ant �����, ��� ��, ��� �� �������, ��� ������� ������� ��, �� ���������� ���, ��� ��� �������.

������ ����� ��������� � ���, ������������ ����� Java ������������ - classpath. ��� �� ������, classpath � Java ��� ������ Jar ������ �/��� ���������, ������� �������� Java ��� ������ ����� ���������. �������� ������� � ���, ��� � ������� �������� classpath ����� ����������� ����� ������� � ����������.

Ant ������������� ���� 2 ������ ��� ����������� classpath, ��� ����� � ����� javac:

       <project name="04b.classpath" default="all" >

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="build"/>
                     <mkdir dir="build/class"/>
             </target>

             <target name="all" description="compile java" depends="make.dirs">
                     <javac destdir="build/class" classpath="extra.jar">
                             <src path="src"/>
                     </javac>
             </target>
    
       </project>

...��� �� ������ ������� classpath ��������, ��� ������ ���� ���� ������� ��� ������������ � ���������� ��������.

       <project name="04c.classpath" default="all" >

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="build"/>
                     <mkdir dir="build/class"/>
             </target>

                 <path id="myclasspath" >
                     <fileset dir="lib">
                             <include name="**/*.jar"/>
                     </fileset>
             </path>

             <target name="all" description="compile java" depends="make.dirs">
                     <javac destdir="build/class" classpathref="myclasspath">
                             <src path="src"/>
                         </javac>
             </target>

       </project>

���������� ����� � ���, ��� Ant ��������� ��� �������� ��� �������������� ��������, ���������� �� jar ����, ������� �� ������ � ��������. �������, ���� �� ������ � ����� jar �����, Ant �� ������� ���� ����� ������ - �������� ��, ��� �������.

��� 7: Jar'� � Filesets

Java ���������� ��� ������� ������������ ������������ � jar �����. Jar ����� ������ �� ��������� ��� zip ����� - ���� jar ���� ����� ��������� ����� ���������� ������ ��������� ������ � ������. Ant ������������� ����������� ������ ��� �������� jar ������:

       <project name="05.jar" default="all" >

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="build"/>
                     <mkdir dir="build/class"/>
             </target>

             <target name="compile" description="compile java" depends="make.dirs">

                         <javac destdir="build/class">
                             <src path="src"/>
                     </javac>
             </target>

             <target name="stuff.jar" description="make jar file" depends="compile">
                     <jar destfile="build/stuff.jar">
                             <fileset dir="build/class">
                                    <include name="**/*.class"/>
                                    <exclude name="**/CVS"/>
                             </fileset>
                     </jar>
             </target>

             <target name="all" description="Do the build" depends="stuff.jar"/>
       </project>

��������, ��� ������� <> �������� Ant'� ��� ������������ jar �����, � �� ����� ��� �����, ���������� � jar ����, ����������� ����� ������� fileset. Filese'�t ����� ���� ������������ �� ������ �������, ��������� ������� ������ � �������� ����� ������ ������� �������� ������ �� �����.

Jar ������ ����� �� �� �����������, ��� � javac: ���� jar ���� ���������� � ����� ����� ����� ���� � �����, �� ������ jar ��������� ����� � ������ �� �������.

��� 8: �������� ��� ����������, ��...

Ant ����� ��������� ���� ���������� ����������� ���������� ��������, ���������� ����������:

       <project name="MyProject" default="all" >

             <property name="month" value="July"/>
    
                 <target name="all" description="Uses properties">
                     <echo>The month is ${month}</echo>
             </target>

       </project>

������� ����, ��� Ant �� �������� �� ����������� � ���, ��� �������� �� ����� �������� ������ ��������, ������ ��� ��������������. �� ����, �������� ������ �� ����������, �� ����������� ����, ��� ��� �� ����������. �������, ���� �� �������� ��������� Ant ��������:

       <project name="07.notvars" default="all" >

             <property name="month" value="Jan"/>
             <property name="month" value="Dec"/>

             <target name="all" description="Uses properties">
                     <echo>This month is ${month}</echo>
             </target>

       </project>

�������� month �� ���������� � ���� �������, ��� ��� ������������ � "Jan":

       Buildfile: build.xml

       all:
            [echo] This month is Jan
    
       BUILD SUCCESSFUL
       Total time: 0 seconds
    

��� 9: ����� Properties

Ant ����� ��������� ���� ���������� ���������� � ��������� property �����, ���������� Ant.properties:

       #
       # A sample Ant properties file
       #
       month=30 days
       year=2004

�� ������ �������� ������ � ����� �������, ��������� ����������� ����� �������� :

       <project name="08.propfile" default="all" >

             <property file="Ant.properties"/>
             <property name="month" value="Jan"/>
             <property name="year" value="1066"/>

             <target name="all" description="Uses properties">
                     <echo>This month is ${month}</echo>
                     <echo>This year is ${year}</echo>
             </target>

       </project>

������ ���������, ��� ������� ��� ��� ���� �����������, ���� �������� �������� ��������, ��� ����� ���� ��� ������ � ������: ������� ���������, �� �� ������ �������� �������� ��������.

������ ��� ������, ���� �������� ����� ������������� ������ � ����������� jar ����� � �������������� ������, ����������� � ��������:

       <project name="09.jarprops" default="all" >

             <property file="Ant.properties"/>
             <property name="build.dir" value="build"/>
             <property name="class.dir" value="${build.dir}/class"/>
             <property name="stuff.jar" value="${build.dir}/stuff.jar"/>

             <target name="make.dirs" description="Make some dirs">
                     <mkdir dir="${build.dir}"/>
                     <mkdir dir="${class.dir}"/>
             </target>

             <target name="compile" description="compile java" depends="make.dirs">
                     <javac destdir="${class.dir}">
                             <src path="src"/>
                     </javac>
             </target>

             <target name="stuff.jar" description="make jar file" depends="compile">
                     <jar destfile="${stuff.jar}">
                             <fileset dir="${class.dir}">
                                    <include name="**/*.class"/>
                                    <exclude name="**/CVS"/>
                         </fileset>
                     </jar>
             </target>

             <target name="all" description="Do the build" depends="stuff.jar"/>

             <target name="clean" description="clean up">
                     <echo>I'm cleaning up.</echo>
                     <delete dir="${build.dir}"/>
             </target>

       </project>

��� 10: ������ �� �������

�� ������ ������������ �������� ��� ��������� � ���������� ��������� �������. �������� �� ��������� ������:

       <project name="10.ifprop" default="all" >

             <target name="debug.build" unless="production">
                     <echo>Pretending to do a debug build</echo>
             </target>

             <target name="production.build" if="production">
                     <echo>Pretending to do a production build</echo>
             </target>

             <target name="all" description="Do the build" depends="production.build,debug.build"/>

       </project>

��� ������, ���� ����������� �������� <>, �� ����������� ������� <<production.build>>, �� ���� �������� �� �����������, �� ����� ��������� <<debug.build>>.

������ �������� �� ��, ��� � if � unless Ant ���� ���������, ����� �� �������� ��������. Ant �� ���������, ����� ��� �������� - �������, � ���������� ���� ����� �� ������� ������ production ���� �������� <> ����� ����������� � <>, <> ��� <>.

� ����������

�����������, ���������� � ����� ������ ��� ���, �������� ����� ������ ��� ���������� � Ant. � �������, Ant ������������ � ��������� �������������. � ��� �������� ���� - ����� ���������� � �������� ��������� �� ����������.

����������, ���� ������� ����:

Java Development with Ant Erik Hatcher and Steve Loughran ISBN 1930110588

Ant: The Definitive Guide By Jesse E. Tilly, Eric M. Burke ISBN 0596001843

<< ���������� ������ ������ src / ������ ��������� >>
1.10, trikoz (?), 11:49, 13/10/2008 [��������] [﹢﹢﹢] [ · · · ] +/
� ��� �� ������ �� 3 �������?Buildfile: C:\Documents and Settings\user\workspace\Project\build.xmlmake.dirs:compile: [javac] Compiling 33 source files to C:\Documents and Settings\user\workspace\Project\build\classBUILD FAILEDC:\Documents and Settings\user\workspace\Project\build.xml:9: Unable to find a javac compiler;com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JDK.It is currently set to "C:\Program Files\Java\jre1.5.0"Total time: 156 milliseconds
1.13, Google (?), 12:56, 09/12/2008 [��������] [﹢﹢﹢] [ · · · ] +/
��� ������ $ javac -d build src/Main.Java src/Utils.src/Java GUI.Java���� src/Main.Java src/Utils.Java src/GUI.Java
1.32, ������ (??), 11:06, 21/12/2013 [��������] [﹢﹢﹢] [ · · · ] +/
������� ������� �� ������� ������! ����� �������� ��������. ��� ������� ������� - ��� ����������)
1.34, ������ (?), 14:36, 28/10/2015 [��������] [﹢﹢﹢] [ · · · ] +/
������ �����! ������� �������� :)P.S.���������� ���������. ������, �� ���� �����.��� 7. �������� 2.<> �� <> ��� 4. ������ 2 � ����dependancies �� dependEncies��� 8. �������� 3.��� ������ ����� � �������� ��������� 10. �������� 2.������ ������ ����� ����������.