DistributeUpdateCenterWithAnt DE

AutoUpdate Dateien automatisch kopieren

Contributed By; Aljoscha Rittner | Josh


Ursprünglicher Blog-Eintrag: BeanDev: AutoUpdate Dateien automatisch kopieren und BeanDev: AutoUpdateCenter per Ant-Script updaten - Teil II

Einführung


Es ist immer wieder notwendig, das persönliche Update-Center der entwickelten NetBeans Platform Anwendung auf einen Server zu übertragen. Dieses Tutorial soll zeigen, wie man dieses Aktualisieren automatisieren kann.

Das Build System mit Ant ist so vielfältig zu konfigurieren, da klappt auch ein FTP-Upload der AutoUpdate-Dateien auf den eigenen Server.


Anfang und Projekteinrichtung


Zunächst muss man die Apache Commons Net in den Ant-Classpath hinzufügen. Das geht seit NetBeans 6.0 sehr leicht über den Options-Dialog. Die Binary-Versions von commons-net extrahieren und in den gewünschten Pfad kopieren.

File:Options-Ant-Classpath_DistributeUpdateCenterWithAnt_DE.PNG

Von nun an hat man die zusätzlichen Tasks, die in commons-net-x.x.x.jar definiert sind. Ein Task davon ist ftp.

Das Build-Script erstellen


Nun das Build-Script der gewünschten NetBeans Application Platform öffnen (findet sich unter Important Files) und folgendes Target hinzufügen:

      <target name="distribute-dev" description="Distri to developers">
        <tstamp/>
        <ftp
            server="ftp.myserver.de"
            userid="thebuilduser"
            password="theuserpwd"
            remotedir="/updates/dev/myapp"
            verbose="true"
            passive="true">
              
          <fileset dir="build/updates" casesensitive="yes">
            <include name="**/*.nbm"/>
            <include name="**/updates.xml"/>
          </fileset>
        
        </ftp>
      </target> 

Kennwort-Speicherung in den private.properties

Da das Build-Script aber auch versioniert wird und es ggf. nicht erwünscht ist, dass irgendwo in einem Repository das Kennwort rumschwirrt, sollte man eine Konstante in den private properties dafür anlegen. Diese Eigenschaften findet man in der Files-Ansicht des Projektes unter nbproject/private/private.properties. Dort einfach folgende Zeile hinzufügen:

  dev.ftp.password=myv3rys3cr3tpassw0rd

und das Target des Ant-Scriptes anpassen:

          password="${dev.ftp.password}"

(Übrigens hilft hier das Autovervollständigen der NetBeans IDE)

Kennwort-Abfrage per Dialog

Wenn man das Kennwort gar nicht speichern will, gibt es den input-Task, mit dem das Ant-Script stoppt, ein Abfrage-Dialog startet und damit das Kennwort setzen kann.

Man braucht nur drei Zeilen dem Build-Script hizuzufügen und das Target distribute-dev bei depends anpassen:

    <target name="-distribute-prompt-for-ftppass" unless="dev.ftp.password">
        <input addproperty="dev.ftp.password" message="Kennwort für das Update-Center:"/>
    </target>

    <target name="distribute-dev" depends="-distribute-prompt-for-ftppass" description="Distributes to developers and testers">

Das war es auch schon. Wenn das Kennwort nicht in einer Property-Datei hinterlegt wurde, kommt der Dialog. Bei richtig hinterlegtem Kennwort oder bei korrekter Eingabe wird dann alles notwendige auf den Server kopiert.

Man sollte nur beachten, dass die Kennworteingabe nicht durch ein Password-Field erfolgt. D.h. bei der Eingabe sieht man das Kennwort!

Erwartetes Resultat


Jetzt muss man zunächst im Kontext-Menü der Application "Create NBMs" aufrufen, damit alle Dateien im build/updates Ordner erzeugt werden.

Nun kann man mit der rechten Maustaste in der Projects-Ansicht auf das Build-Script klicken und Run Target -> distribute-dev aufrufen.

File:RunTarget_DistributeUpdateCenterWithAnt_DE.PNG

Wenn alle Daten passen, werden die Dateien auf den ftp-Server kopiert.

Möchte man sich den Schritt mit dem Menüaufruf von "Create NBMs" sparen, trägt man in das Target einfach die Abhängigkeit zu dem nbms-Target ein:

    <target name="distribute-dev" depends="nbms" description="Distri to developers">

Somit erzeugt distribute-dev zunächst immer die aktuellen Updater-Dateien und kopiert sie dann auf den Server.

See Also

Ant Target als Shortcut eintragen (en)

Die Ant-FAQ (en)

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo