BlackBerry - Ant Build-Skript für komplexere Anwendungen

9

Ich habe Probleme beim Erstellen eines Ant-Build-Skripts für unsere Produktions-Apps.

Ich habe viel über Ant und bb-ant-tools gelesen. Ich habe viele Stackoverflow-Fragen zu Ant & amp; BB (unten in Kommentaren auf "Link" die Fragen). Ich hätte gerne Hilfe mit einem Skript, das komplexer ist als die übliche "Hallo Welt!" Stil Apps. Mein aktueller Build-Prozess wird vollständig in Eclipse ausgeführt und manuell ausgeführt.

Für diese Frage möchte ich fragen, wie man Ant benutzt, um ein Projekt zu erstellen, das zwei (oder mehr) verschiedene Bibliotheksprojekte verwendet (die ebenfalls erstellt werden müssen), ohne Eclipse zu benutzen?

Ich habe Ant, bb-ant-tools installiert. Ich habe gebaut & amp; auf dem Gerät eine grundlegende Hello World implementiert, mit diesen Tools folgenden grundlegenden Beispielen. Ich habe ein Build-Skript und einige Eigenschaftendateien erstellt. aber wenn ich die Skripte ausführe, läuft das Endprodukt nicht auf dem Telefon (die Benutzeroberfläche des Telefons stürzt auf dem Startbildschirm ab).

Ich habe 3 Build-Skripte, eines für jede Bibliothek und eines für die Haupt-App. Diese sind identisch mit Ausnahme des Projektnamens (und könnten irgendwann zu einem gemeinsamen importierten Skript zusammengefasst werden). Jedes der 3 Java-Projekte hat eine zugehörige Ant-Eigenschaftendatei. Ich benutze auch 3 gemeinsame Eigenschaften Dateien für die Definition von Konstanten, Speichern von Informationen auf der JDE & amp; das Code-Signatur-Passwort.

  • common.properties:

    %Vor%
  • project.properties (für SOAP-Bibliothek):

    %Vor%
  • project.properties (für interne SDK-Bibliothek):

    %Vor%

Update 1: Ich habe die Bibliothekseigenschaftsdateien seit dem ersten Post aktualisiert. Zuvor habe ich type=library (basierend auf der RIM-Dokumentation) festgelegt. Basierend auf meinen in diesem Post ( BlackBerry - eigene JAR-Datei in eigenem Projekt ) beschriebenen, versuchte ich, zu% co_de zu wechseln %. Dies führt zu besseren Ergebnissen (zumindest auf meiner Plattform BB JDE 5.0).

  • project.properties (für meine App):

    %Vor%
  • build.xml (egal mit Ausnahme des Namens oben, und die 2 Bibliotheksskripts haben keine Dateigruppen innerhalb von import.jars deklariert):

    %Vor%

Update 2: Ich habe die type=midlet seit dem ersten Post aktualisiert. Target build.xml kopiert nun das App-Icon in den Build-Output-Ordner ( build ), um einen Fehler in bb-ant-tools / rapc zu umgehen.

Das ist also ein sehr einfaches Ant-Skript, außer:

  1. Ich würde gerne wissen, wie man die Sub-Builds vom Haupttrigger löst App-Build (meine Antwort unten befasst sich damit).
  2. Der große, ist, dass die daraus resultierende Ausgabe tut nicht funktionieren.

FWIW Ich habe die folgenden populären Ressourcen gefunden und liste sie auf, damit sie nicht als Antworten hinzugefügt werden müssen und um in Zukunft bei der Suche nach Informationen zu helfen:

Richard Le Mesurier 20.01.2012, 13:36
quelle

5 Antworten

1

Dies ist, was ich in mehreren Projekten verwende.

%Vor%

Dies ist der Kompilierungscode. Wir kompilieren ein paar Bibliotheken und dann die Anwendung, indem wir die gerade erstellten Bibliotheken verknüpfen.

Dann zum Unterschreiben:

%Vor%

Und dann auf unseren OTA-Server hochladen:                                                                                                                      

    
Joe 26.01.2012, 20:57
quelle
1

Um meine Frage zu Auslösen von Builds für eingeschlossene Projekte zu beantworten, verwenden Sie in meiner Haupt-Build-Datei die Aufgabe subant , die ein Ant-Standardbefehl ist.

Zum Beispiel wird der folgende Code (ich vergesse, wo ich ihn kopiert habe, aber es ist nicht meins, und es funktioniert) wird die Datei build.xml in jedem der gelieferten Ordner auslösen und das Ziel export-all ausführen innerhalb dieser Build-Datei.

%Vor%

Es erfordert eine Eigenschaft namens project.deps , die als durch Kommas getrennte Liste von Ordnern deklariert wird. Die dirset wird definiert, indem ein Ordner aus der Hauptdatei build.xml zurückverfolgt wird und nach den einzelnen Unterordnern in project.deps gesucht wird.

Ant sucht dann die Datei build.xml in jedem dieser Ordner und führt sie aus, wobei sie nach dem export-all Ziel sucht.

Innerhalb jeder der neuen export-all -Unteraufgaben wurde die Eigenschaft export.dir festgelegt. Auf diese Weise können Sie Informationen aus der Hauptdatei build.xml an die Unteraufgaben übergeben.

    
Richard Le Mesurier 30.01.2012 07:23
quelle
1

Um die Ressourcenstruktur beizubehalten, anstatt den Ordner 'res' als Quellordner hinzuzufügen, gehen Sie wie folgt vor:

  1. Erstellen Sie eine temporäre JAR-Datei aller Ressourcen mit dem Befehl ANT 'jar':

    %Vor%
  2. Fügen Sie das temporäre Jar als Quellelement in das 'src' Element des rpc Befehls ein:

    %Vor%
Meanman 04.03.2013 17:41
quelle
0

Ich hoffe, dass Sie nicht vergessen, Ihre Bibliothek cods mit Ihrer App cod an den Endbenutzer zu versenden. Weil sonst App nicht funktioniert.

Über das Auslösen von Bibliothekserstellung - Ich bevorzuge es, Bibliotheken nur dann zu erstellen, wenn es notwendig ist - Code oder Abhängigkeit geändert.

Über die Lösung für Sie würde ich nur Bat-Datei, wo ich Ant drei Mal mit verschiedenen build.xml-Dateien und ordnungsgemäße aktuelle Dateien auslösen (weil Sie Ant-Skripte relative Verzeichnisse haben). Es wäre also so:

%Vor%     
Eugen Martynov 22.01.2012 17:01
quelle
0

Ich habe eine Frage dazu gesehen, wie man die Struktur des Ressourcenverzeichnisses in Dhirals Kommentar zu Joe's Antwort speichern kann. Vor ein paar Tagen habe ich hier einen Workaround gefunden ( Blackberry Development mit Ant & amp; Eclipse ) in Kommentaren zu posten:

%Vor%     
Yuriy Ashaev 13.05.2012 01:36
quelle

Tags und Links