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:
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:
und viele Antworten hier auf stackoverflow - siehe meine Kommentare unten
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:
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.
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.
Um die Ressourcenstruktur beizubehalten, anstatt den Ordner 'res' als Quellordner hinzuzufügen, gehen Sie wie folgt vor:
Erstellen Sie eine temporäre JAR-Datei aller Ressourcen mit dem Befehl ANT 'jar':
%Vor%Fügen Sie das temporäre Jar als Quellelement in das 'src' Element des rpc Befehls ein:
%Vor%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%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%Tags und Links blackberry ant