AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [Java, Ant] Ant Build Skript funktioniert nicht bei Start aus Konsole

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

Ein Thema von Luckie · begonnen am 7. Sep 2011 · letzter Beitrag vom 12. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#1

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

  Alt 7. Sep 2011, 12:03
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?
Miniaturansicht angehängter Grafiken
eclipse_classpath.jpg  
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 7. Sep 2011 um 12:08 Uhr)
  Mit Zitat antworten Zitat
mjustin
Online

Registriert seit: 14. Apr 2008
2.742 Beiträge
 
Delphi 2009 Professional
 
#2

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

  Alt 7. Sep 2011, 18:06
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.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 7. Sep 2011, 19:27
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mjustin
Online

Registriert seit: 14. Apr 2008
2.742 Beiträge
 
Delphi 2009 Professional
 
#4

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

  Alt 8. Sep 2011, 09:59
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>
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#5

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

  Alt 8. Sep 2011, 10:56
Ä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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#6

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

  Alt 9. Sep 2011, 11:52
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mjustin
Online

Registriert seit: 14. Apr 2008
2.742 Beiträge
 
Delphi 2009 Professional
 
#7

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

  Alt 9. Sep 2011, 12:45
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.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#8

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

  Alt 9. Sep 2011, 12:51
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mjustin
Online

Registriert seit: 14. Apr 2008
2.742 Beiträge
 
Delphi 2009 Professional
 
#9

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

  Alt 9. Sep 2011, 12:58
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.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.362 Beiträge
 
Delphi 2006 Professional
 
#10

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

  Alt 9. Sep 2011, 13:00
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
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf