2012-02-22 13 views
5

Sto cercando di ottenere un handle su tutta questa cosa del buildsystem "Ant". Ho creato un build.xml che Android mi fornisce nativamente usando il comando: android update project -p ..Come compilare e jarare un progetto Android usando Ant?

Mentre questo mi ha dato un file build.xml modello, vorrei un paio di altre opzioni. Nello specifico, mi piacerebbe essere in grado di JAR e/o Compilare il mio progetto; preferibilmente con un numero di versione.

Domanda bonus: Come posso escludere file dal mio build JAR. Ad esempio, ho una attività che ho usato per testare la mia funzionalità, ma non voglio che sia inclusa nell'ultimo JAR.

Il mio file build.xml che Android mi ha dato è Gisted here poiché è piuttosto lungo (principalmente commenti).

EDIT: Sto anche utilizzando IntelliJ, quindi nessuna specifica Eclipse, per favore!

+2

Cosa intendi per "JAR e Compila il mio progetto", considerando che le applicazioni Android non sono file JAR? – CommonsWare

+0

@CommonsWare, intendo davvero due "obiettivi". 1.Compilare il mio codice in modo che le classi, i file dex e qualsiasi cosa siano nelle loro directory corrette. 2. JAR quei file di classe che voglio in modo che possa distribuire la mia "libreria" Android in modo appropriato. – hwrdprkns

+0

Inoltre, dovrei chiarire. Non so se il mio progetto si qualifica come progetto "biblioteca" o no. Ma ho solo il codice che usa l'SDK di Android che voglio JARed in modo che possa usarlo in un'altra applicazione. Non attività, solo altro codice. – hwrdprkns

risposta

14

In particolare, mi piacerebbe essere in grado di JAR e/o compilare il mio progetto; preferibilmente con un numero di versione.

In Android, i numeri di versione sono per app, non JAR.

Detto questo, l'aggiunta di un obiettivo jar è una questione di aggiungere questo al file build.xml verso il basso:

<target name="jar" depends="debug"> 
    <jar 
     destfile="bin/whatever-you-want-to-call-the.jar" 
     basedir="bin/classes" 
    /> 
</target> 

Quindi, eseguire ant jar per compilare e impacchettare il file JAR.

Vedrete questo modello nella maggior parte dei componenti Android riutilizzabili in my GitHub area (vedere i repository cwac-).

Domanda bonus: Come posso escludere file dal mio build JAR. Ad esempio, ho una attività che ho usato per testare la mia funzionalità, ma non voglio che sia inclusa nell'ultimo JAR.

Uso excludes o excludesfile, come descritto nella jar Ant task documentation.

+0

Perfetto. Per inciso, 'excludes =" **/ExcludedFile.class "esclude il file che non ti piace. E 'depends =" debug "' è la magia che richiede una pre-compilazione. – hwrdprkns

+0

@hwrdprkns Potresti spiegare un po 'di più cosa intendi per "la magia che richiede la pre-compilazione"? Stai dicendo che specificando "dipende = 'debug'" costringe la formica a compilare prima di costruire il vaso? EDIT: In realtà dopo aver letto di più, questo significa che quando chiami "ant jar" si rende conto che prima deve fare "ant debug"? Suppongo che usiamo il debug invece del rilascio perché non ci interessa la firma per un jar? –

1

Per il riutilizzo di progetti Android e non Android, suggerisco di dare un'occhiata al plug-in Android Maven. Sfrutta la gestione delle dipendenze e altre potenti funzionalità di Maven e sarà molto più adatto a quello che vuoi fare.

Checkout il webpage and documentation su di esso e forse il capitolo sulla Android development in Maven : The Complete Reference ho scritto per avere un po 'più di comprensione e avere qualcosa da guardare su Maven.

Il plug-in Android supporta il riutilizzo per normali risorse jar e se esistono dipendenze Android all'interno del codice è possibile utilizzare i progetti apklib. Un sacco di progetti come Roboguice, robolectric, actionbarsherlock e altri usano questa funzione con successo.

+0

Non è quello che la domanda ha richiesto, ma +1 poiché sembra uno strumento fantastico che dovrei conoscere. – hwrdprkns

+0

Nessun problema .. solo cercando di salvarti dall'inferno xml e molti dolori di aggiornamento una volta che inizi a personalizzare la build di formica. –

Problemi correlati