Frage

Ich arbeite an einem Automatisierungsprojekt für meinen Arbeitgeber. Wir haben einen Pool für jede Revision unserer Quellcodes. Wenn Sie eine Revision herunterzuladen, müssen Sie eine Verzeichnisstruktur zu schaffen, mit einem Bündel von Dritten, das Projekt schließlich bauen umfasst. Ich habe diesen gesamten Prozess bis zu dem Punkt mit meinem Skript (.bat) kompiliert jede einzelne runnable Java-Anwendung automatisiert werden. Es gibt viele Anwendungen auf diesem Einzelprojekt, und die Verzeichnisliste sieht wie folgt aus:

Proj Name
   -variousincludesfolder1
   -variousincludesfolder2
   -variousincludesfolder3
   -variousincludesfolder4
   -runnableapplicationsandmoreincludes
       -con.java

Im Moment würde Ich mag eine automatisierte Erstellung von con.java zu tun, aber ich weiß nicht, wo man anfangen soll. Die Leute haben vorgeschlagen, dass ich versuchen, Ant, aber jede automatisierte Ant-Dateigeneration ich Eclipse verwenden scheint nur genug con.java während eine aktive Projektdatei vorhanden zu bauen. Gibt es trotzdem, dies zu automatisieren, ohne Eclipse zu verwenden, bis zu dem Punkt mit der Batch-Datei eine .jar erzeugt selbst?

War es hilfreich?

Lösung

Dies ist definitiv ein Job für Ant . Verlassen Sie sich nicht auf Eclipse-generierte Ant-Dateien; lesen Sie die Handbuch und selbst eine Beurteilung schreiben. (Sie werden wahrscheinlich feststellen, dass Ant tut Dinge, die Sie dachte nicht, dass auch in Ihrem Build-Skript zu tun.)

Um genauer zu sein, hier ist die Dokumentation für die jar Aufgabe .

Andere Tipps

Sie können Platzhalter und Muster definieren passen auf alle Arten von Dateien und Ordnern in Ihrem Build auf / Ausschluss. Werfen Sie einen Blick auf die Ant Handbuch , um zu sehen, wie die Dinge wie Dateigruppen Arbeit mit einschließen und Filter ausschließen.

Lesen Sie auch die Tutorial .

Hier ist eine einfache Build-Datei, die alle Java-Dateien und Referenz alle Gläser zu kompilieren aussieht. Legen Sie sich in dem Top-Level-Verzeichnis:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" 
    href="http://www.ibm.com/developerworks/xml/library/x-antxsl/examples/example2/ant2html.xsl"?>
<project name="Proj Name" default="build" basedir=".">
    <property name="src.dir" value="${basedir}" description="base folder where the source files will be found.  Typically under /src, but could be anywhere.  Defaulting to root directory of the project" />
    <property name="build.dir" value="build" description="Where to put build files, separate from src and resource files." />

    <path id="master-classpath">
        <fileset dir="${basedir}" description="looks for any jar file under the root directory">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="build" description="Compile all JAVA files in the project">
        <javac srcdir="${src.dir}" 
            destdir="${build.dir}/classes" 
            debug="true" 
            deprecation="true" 
            verbose="false" 
            optimize="false"  
            failonerror="true">
            <!--master-classpath is defined above to include any jar files in the project subdirectories(can  be customized to include/exclude)-->
            <classpath refid="master-classpath"/>
            <!--If you want to define a pattern of files/folders to exclude from compilation...-->
            <exclude name="**/realm/**"/>
        </javac>  
    </target>

</project>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top