Build-Vorgang konfigurieren

Allgemeine Themen rund um NetBeans

Moderator: wegus

GBunge
Beiträge: 28
Registriert: 25.05.2013, 12:54

Build-Vorgang konfigurieren

Beitragvon GBunge » 27.08.2015, 10:50

Hallo NetBeans Fans,

mit einer Änderung im build.xml und dort mit einem <target name="-post-jar">
kopiere ich eine eigene Bibliothek in meinen Bibliotheks-Ordner.

Nun möchte ich:
1. die Dokumntation automatisch vor dem Bilden des Jar-Files anlegen.
2. die fertige Dokumentation in einen Dokumenten-Ordner kopieren.
Das alles desshalb weil der dist-Ordner vor dem Bilden des Jar-Files gelöscht wird.

Ich müßte also im build.xml etwas machen wie:

Code: Alles auswählen

<target name="-pre-jar">
    < mache irgend etwas um die Dokumentation anzulegen >
    <copy file="dist/javadoc" tofile="/x/y/z/Bibliothek_Doc">
</target>

Und genau darum geht es, wie bekomme ich das "mache irgendwas um die Dokumentation anzulegen" hin?

Für hilfreiche Antworten wäre ich sehr dankbar.
Gruß GBunge

Benutzeravatar
nigjo
Beiträge: 575
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Build-Vorgang konfigurieren

Beitragvon nigjo » 27.08.2015, 13:34

Hi GBunge

Ich gehe davon aus, dass du ein Standard JavaSE Ant-Projekt verwendest.

Der "dist" Ordner wird nicht vor dem Erstellen der Jar gelöscht (wesegen "-pre-jar" nichts bringt) sondern durch ein "clean", welches du schätze ich vor dem Build ausführst.

Wenn du die JavaDocs automatisch kopieren möchtest, musst du dich in das "javadoc" Target einklinken. Leider bietet NetBeans hier keine Standard-Targets "pre" und "post" wie bei "compile" und "jar" an. Aber in den Kommentaren der "build.xml" ist ein Hinweis auf das "-javadoc-build" Target gegeben. Damit kann man sich die beiden "Entrypoints" selber basteln:

Code: Alles auswählen

<target name="-javadoc-build" depends="-pre-javadoc,build-impl.-javadoc-build,-post-javadoc"/>
<target name="-pre-javadoc"/>
<target name="-post-javadoc"/>

Zudem solltest du dann das "import" Statement am Anfang der build.xml um den Parameter "as='build-impl'" erweitern, damit der Aufruf des Original-Targets einfacher zu benennen ist.

Code: Alles auswählen

<import file="nbproject/build-impl.xml" as="build-impl"/>


GBunge hat geschrieben:Und genau darum geht es, wie bekomme ich das "mache irgendwas um die Dokumentation anzulegen" hin?

Das "javadoc" Target wird normalerweise nicht automatisch ausgeführt (sonst würde er das bei jedem Start des Debuggers machen). Aber mit dem oben genannten "-post-javadoc" kannst du den Kopierjob jedes Mal durchführen, wenn neue JavaDocs von dir erstellt werden. In der Kommandozeile kannst du auch einfach "ant jar javadoc" aufrufen um beides auf einmal zu erledigen.

Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

GBunge
Beiträge: 28
Registriert: 25.05.2013, 12:54

Re: Build-Vorgang konfigurieren

Beitragvon GBunge » 29.08.2015, 18:28

Hallo Jens,

danke für Deine Erklärung, ich denke, damit bekomme ich das hin.
Ohne ein wenig Hilfe habe ich mich nicht getraut in den Innereien von NetBeanszu werkeln.

Gruß GBunge

Benutzeravatar
nigjo
Beiträge: 575
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Build-Vorgang konfigurieren

Beitragvon nigjo » 31.08.2015, 08:51

Moin

GBunge hat geschrieben:Ohne ein wenig Hilfe habe ich mich nicht getraut in den Innereien von NetBeanszu werkeln.

Die "build.xml" in einem JavaSE Projekt ist dafür vorgesehen, dass man da selber drin rumwerkelt. Man sollte nur die Finger von der "build-impl.xml" im "nbproject" Verzeichnis lassen. Aber da man "Targets" in Ant einfach "überschreiben" kann ist das auch nicht notwendig.

Weitere Infos zu Ant-Targets und deren Ausführungsreihenfolge gibt es im Handbuch zu Ant: http://ant.apache.org/manual/targets.html#targets

Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

GBunge
Beiträge: 28
Registriert: 25.05.2013, 12:54

Re: Build-Vorgang konfigurieren

Beitragvon GBunge » 01.09.2015, 13:26

Hallo nigjo , hallo jens,

wenn man glaubt es ist alles gut, dann klappt nichts:
Nach Euren Empfehlungen habe ich als erstes das hier in der build.xml versucht:

Code: Alles auswählen

    <target name="-javadoc-build" >
        <echo message="mache meine Dokumente"/>
        <copy todir="/Users/gb/aMyJavaDocs"/>
            <fileset dir="${dist.javadoc.dir}">
                <filename name="*.*"/>
            </fileset>
        </copy>
    </target>

Dabei kommt in der Statuszeile von NetBeans die Fehlermeldung: Build of XYZ.java ( javadoc ) faild.

Dann habe ich den Abschnitt '-javadoc-build' aus der build-impl.xml in die build.xml kopiert
und meine Kopieranweisung unten dran geschrieben.

Code: Alles auswählen

    <target depends="init" if="have.sources" name="-javadoc-build">
        <mkdir dir="${dist.javadoc.dir}"/>
        <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
            <and>
                <isset property="endorsed.classpath.cmd.line.arg"/>
                <not>
                    <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
                </not>
            </and>
        </condition>
        <condition else="" property="bug5101868workaround" value="*.java">
            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
        </condition>
        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
            <classpath>
                <path path="${javac.classpath}"/>
            </classpath>
            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
                <filename name="**/*.java"/>
            </fileset>
            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
                <include name="**/*.java"/>
                <exclude name="*.java"/>
            </fileset>
            <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
        </javadoc>
        <copy todir="${dist.javadoc.dir}">
            <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
                <filename name="**/doc-files/**"/>
            </fileset>
            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
                <include name="**/doc-files/**"/>
            </fileset>
        </copy>
 
 
 // ab hier meine Kopieranweisung
 
 
        <copy todir="/Users/gb/aMyJavaDocs"/>
            <fileset dir="${dist.javadoc.dir}">
                <filename name="*.*"/>
            </fileset>
        </copy>
        <echo message="mache meine Dokumente"/>
    </target>


Dabei kommt die gleiche Fehlermeldung wie oben:

Nun bin ich ratlos!

Ist da noch ein wenig Hilfe drin?
Gruß GBunge

Benutzeravatar
nigjo
Beiträge: 575
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Build-Vorgang konfigurieren

Beitragvon nigjo » 01.09.2015, 13:34

Hi

Wie schon geschrieben: Lass die build-impl.xml in Ruhe. Vergiss sie.
Ebenfalls wie schon geschrieben, kopiere folgende Zeilen in deine build.xml:

Code: Alles auswählen

<target name="-javadoc-build" depends="-pre-javadoc,build-impl.-javadoc-build,-post-javadoc"/>
<target name="-pre-javadoc"/>
<target name="-post-javadoc">
</target>

und ergänze den "as"-Parameter wie in meinem vorherigen Post geschrieben beim "import".

Danach kannst du in dem "-post-javadoc"-Target deinen Kopier-Task eintragen. Fertig.

Dein erster Versuch scheitert daran, dass du das Original "-javadoc-build"-Target komplett überschrieben hast und damit gar keine JavaDocs erzeugt werden. Der zweite Versuch hätte klappen sollen, allerdings brauche ich dafür die vollständige Fehlermeldung. Die letzte Zeile alleine reicht nicht, am besten die kompletten letzten (sagen wir mal) 10-20 Zeilen hier posten.
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

GBunge
Beiträge: 28
Registriert: 25.05.2013, 12:54

Re: Build-Vorgang konfigurieren

Beitragvon GBunge » 07.09.2015, 15:59

Hallo Jens,
leider hat sich meine Antwort und Dank an Dich, wegen eines kurzen Aufenthalt im Krankenhaus, verzögert.
Ich komme also erst heute dazu zu vermelden, daß alles bestens klappt. Danke nochmal!

Nun habe ich noch eine Frage, allerdings nicht zum ursprünglichen Titel.
Ich habe gelesen, daß es von Apache ein Package 'Tika' gibt, das die Fähigkeiten von ANT erweitert.

Dazu meine Frage:
Wenn ich dieses Package aus dem Netz lade, wo soll es im Dateisystem hin, wenn ich es in eine Applikation importieren will?
Ich habe versucht auf meinem Rechner das Package 'javax.swing' zu finden, weil ich mir dachte, da muss auch tika hin.
Leider habe ich java.swing mit 'locate swing' nicht gefunden. Ich dachte es müsse im JDK-Ordner liegen, aber offensichtlich liegt es
nicht dort, oder wird ganz anders bezeichnet.
Grundsätzlich: Wo liegen die Java-Komponenten zum importieren?

Gruß GBunge

Benutzeravatar
nigjo
Beiträge: 575
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Build-Vorgang konfigurieren

Beitragvon nigjo » 07.09.2015, 16:07

Hi

Erstmal Gute Besserung und es freut mich, dass dein Ant-Problem keines mehr ist.

GBunge hat geschrieben:Ich habe gelesen, daß es von Apache ein Package 'Tika' gibt, das die Fähigkeiten von ANT erweitert.
GBunge hat geschrieben:Leider habe ich java.swing mit 'locate swing' nicht gefunden.

Da muss ich leider passen. Weder habe ich Tika bisher verwendet noch kenne ich mich auch Nicht-Windows Systemen sonderlich aus. Die Fragen muss ich an den Rest des Forums weiter reichen.

Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe


Zurück zu „NetBeans - Allgemeines“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste