Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole (https://www.delphipraxis.net/162851-%5Bjava-ant%5D-ant-build-skript-funktioniert-nicht-bei-start-aus-konsole.html)

Luckie 7. Sep 2011 11:03


[Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe hier ein Ant Build Script:
Code:
<?xml version="1.0"?>

<project name="Clover" default="" basedir=".">
   <description>Build file</description>
   
   <property name="src_dir" location="./src"/>
   <property name="srcTest_dir" location="./srcTest"/>
   <property name="bin_dir" location="./bin"/>      
      
    <target name="CloverSetup">
      <clover-setup initstring="CloverDB/clover_coverage.db"/>
    </target>

   <target name="Cleanup">
      <delete verbose="true">
         <fileset dir="${bin_dir}">            
             <include name="*.class"/>      
         </fileset>
      </delete>
   </target>
   
   <target name="BuildProject">
      <mkdir dir="${bin_dir}"/>
      <javac destdir="${bin_dir}" verbose="true">         
         <src>
            <pathelement location="${src_dir}"/>
            <pathelement location="${srcTest_dir}"/>
         </src>            
      </javac>
   </target>
   
   <target name="UnitTests">
      <junit printSummary="true" showOutput="true">   
         <formatter type="brief" usefile="false"/>
         <classpath >
            <pathelement location="${bin_dir}"/>         
         </classpath>
         <batchtest>
            <fileset dir="${bin_dir}">
               <include name="*Test.class"/>
            </fileset>
         </batchtest>         
      </junit>
   </target>
   
   <target name="CloverReportHTML">
      <clover-report>
         <current outfile="report_html">
            <format type="html"/>
         </current>
      </clover-report>
   </target>
   <target name="CloverReportXML">
         <clover-report>
            <current outfile="report_xml\report.xml">
               <format type="xml"/>
            </current>
         </clover-report>
   </target>
</project>
Wenn ich es auch Eclipse aus ausführe, klappt alles wunderbar. Rufe ich es über die Konsole auf mit
Code:
ant -v -k -buildfile build.xml
erhalte ich folgende Ausgabe:
Zitat:

Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Buildfile: C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\build.xml
Detected Java version: 1.6 in: C:\Programme\Java\jre6
Detected OS: Windows XP
parsing buildfile C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\build.xml with URI = file:/C:/Dokumente%20und%20Einstellungen/mp/Eigene%20Dateien/Datawerk/Projekte/Java%20Unit%20Testing%20Build%20Automation/Demos/AntClover/build.xml
Project base dir set to: C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover
parsing buildfile jar:file:/C:/Programme/Ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/C:/Programme/Ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file

BUILD SUCCESSFUL
Total time: 0 seconds
Allerdings wurde nichts compiliert und der Clover Report wurde auch nicht erstellt.

Im Build Dialog sind noch Classpath Variablen deklariert. Muss ich die auch im Build Skript deklarieren, wenn ich das Script über die Konsole ausführe? Und wenn ja, wie muss ich sie deklarieren?

mjustin 7. Sep 2011 17:06

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Zum Ausführen eines Targets in der build.xml braucht man nur ant <target> einzugeben.

Zum Beispiel:

Code:
ant Cleanup
Standardmäßig wird die build.xml als Buildskript verwendet.

Das Projekt verwendet kein Default-Target, daher passiert bei einfachem Aufruf von ant ohne einen Targetnamen nichts.

Luckie 7. Sep 2011 18:27

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Ach so. Aber wie sage ich Ant wo er die Build.xml mit der Target findet? Und wie kann ich mehrere Targets hintereinander ausführen?

mjustin 8. Sep 2011 08:59

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Zitat:

Zitat von Luckie (Beitrag 1122473)
Ach so. Aber wie sage ich Ant wo er die Build.xml mit der Target findet? Und wie kann ich mehrere Targets hintereinander ausführen?

ant -? hilft da weiter:

Zum Angeben eines bestimmten buildfiles:

Code:
ant -f <file>  use given buildfile
Zum Ausführen mehrerer Targets zum Beispiel:

Code:
ant target1 target2 target3
Oder mit depends attributen in der target Definition, diese können auch Listen abhängiger targets enthalten.

Code:
<target name="build-distribution" depends="compile,test,zip">
  ...
</target>

Luckie 8. Sep 2011 09:56

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Äh ja, hätte ich auch drauf kommen können.

Mein Aufruf sieht jetzt so aus:
Code:
ant -f "C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\build.xml" CloverSetup Cleanup BuildProject UnitTests CloverReportHTML CloverReportXML > build.log
pause
Aber in der Logdatei steht nur
Zitat:

Buildfile: C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\build.xml

CloverSetup:
Und passieren tut auch nichts.

Was könnte ich denn noch falsch machen?

Luckie 9. Sep 2011 10:52

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
OK, irgendwas mit Clover stimmt da nicht. Ich habe es mal rausgenommen.
Code:
ant Cleanup BuildProject UnitTests CloverReportHTML CloverReportXML > build.log
So jetzt findet er die JUnit nicht. ich habe schon alle Varianten ausprobiert mit <classpath>. Aber es will nicht.
Zitat:

[javac] [loading java\lang\Object.class(java\lang:Object.class)]
[javac] C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\srcTest\CalcTest.java:7 : package org.junit does not exist
[javac] import static org.junit.Assert.*;
Code:
<classpath>
      <pathelement path="${classpath}"/>
      <pathelement location="lib/helper.jar"/>
    </classpath>
Zitat:

failed to create task or type classpath Cause: The name is undefined.
Wie macht man es richtig?

mjustin 9. Sep 2011 11:45

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Die Dokumentation zum JUnit Task in Ant ist hier:

http://ant.apache.org/manual/Tasks/junit.html

es gibt fünf Möglichkeiten, die erste ("Put both junit.jar and ant-junit.jar in ANT_HOME/lib") ist am einfachsten.

Die vierte, mit <classpath> Anweisungen für beide JUnit Dateien (junit.jar und ant-junit.jar), geht nur innerhalb eines taskdef Elements, d.h. man würde junit als neuen Task definieren, das geht, ist aber umständlich weil es junit als Task ja schon gibt.

Luckie 9. Sep 2011 11:51

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
ja, die Doku habe ich auch gefunden, nur war sie nicht sehr hilfreich.

Ich habe es jetzt so probiert:
Code:
<path id="classpath.junit">
       <pathelement location="C:/Programme/Eclipse/plugins/org.junit4_4.3.1/junit.jar" />      
   </path>

<target name="UnitTests">      
      <junit printSummary="true" showOutput="true">
         <classpath refid="classpath.junit" />
         <formatter type="brief" usefile="false"/>
         <classpath >
            <pathelement location="${bin_dir}"/>         
         </classpath>
         <batchtest>
            <fileset dir="${bin_dir}">
               <include name="*Test.class"/>
            </fileset>
         </batchtest>         
      </junit>
   </target>
Das will auch nicht.

Eigentlich wollte ich es ja vermeiden Dateien rumzukopieren. Werde ich aber dann wohl machen.

Vielen Dank für deine Hilfe.

mjustin 9. Sep 2011 11:58

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Zitat:

Zitat von Luckie (Beitrag 1122917)
Ich habe es jetzt so probiert:
Code:
...      
      <junit printSummary="true" showOutput="true">
         <classpath refid="classpath.junit" />
         ...
         </batchtest>         
      </junit>
Das will auch nicht.

Das classpath Element innerhalb von junit ist nur dazu da, den classpath zu setzen den die von junit kompilierten und ausgeführten Klassen benötigen.

Den classpath von junit kann man hier nicht mehr setzen, das muss schon vorher geschehen, damit JUnit überhaupt ausgeführt werden kann. u.a. kann man auch Ant per -lib Parameter den Pfad zu JUnit übergeben, dann muss man keine Dateien kopieren.

Luckie 9. Sep 2011 12:00

AW: [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole
 
Ich habe sie jetzt einfach kopiert. Geht. Jetzt muss ich nur noch Clover mit Ant zum laufen bringen. :? Da verabschiedet er sich einfach:
Zitat:

Buildfile: C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\build.xml

Cleanup:
[delete] Deleting C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\bin\Calc.class
[delete] Deleting C:\Dokumente und Einstellungen\mp\Eigene Dateien\Datawerk\Projekte\Java Unit Testing Build Automation\Demos\AntClover\bin\CalcTest.class

CloverSetup:
Aufruf:
Code:
ant Cleanup CloverSetup BuildProject UnitTests CloverReportHTML CloverReportXML > build.log


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz