2010-07-13 9 views
10

Anscheinend kann ich Quellordner mithilfe der source.dir -Eigenschaft in build.properties angeben - aber was, wenn ich mehrere Quellordner angeben möchte?Wie kann man mehrere Quellordner in build.properties angeben, wenn man ameise Android-Projekte erstellt?

Die Kommentare sind unten aus der Datei build.xml von den Android SDK-Tools generiert:

<!-- The build.properties file can be created by you and is never touched 
    by the 'android' tool. This is the place to change some of the default property values 
    used by the Ant rules. 
    Here are some properties you may want to change/update: 

    application.package 
     the name of your application package as defined in the manifest. Used by the 
     'uninstall' rule. 
    source.dir 
     the name of the source directory. Default is 'src'. 
    out.dir 
     the name of the output directory. Default is 'bin'. 

    Properties related to the SDK location or the project target should be updated 
     using the 'android' tool with the 'update' action. 

    This file is an integral part of the build system for your application and 
    should be checked in in Version Control Systems. 

    --> 

Anmerkung: Ich dont care in Eclipse über den Bau - Im up Einstellung automatische Builds ant verwenden.

+0

Bitte klären Sie, welche Aufgabe Sie verwenden. Die Javac-Task verwendet nicht die source.dir -Eigenschaft. –

+0

Bei ANDROID-Projekten können Sie entsprechend den vom Android-CLI-Tool generierten Kommentaren source.dir in build.properties angeben. Ich werde die obige Frage aktualisieren und die Kommentare einfügen. – Eno

Antwort

18

Haben Sie versucht, mit Doppelpunkten Pfade zu trennen? Meine build.properties wie folgt aussehen:

source.dir=src:src2:src3:src4:src5 
+3

Ich fürchte, es funktioniert nicht beim Erstellen einer Bibliothek. –

+1

@ AndreyRegentov - Hier ist die Lösung für Android Library Projekt http://StackOverflow.com/Questions/14605899/How-to-Specify-Multiple-Source-Directory-for-Android-Library-Project –

0

Im (stark angepassten) build.xml ich hier habe, die eine Reihe von anderen Fragen lösen, ich mit am Ende nur die Kompilierung Ziel in meine XML ziehen und Geben Sie dort mehr als einen Quellpfad an. Sie können dasselbe tun, legen Sie einfach das neue Ziel über die Definition der Setup-Aufgabe in Ihrer build.xml. Beachten Sie, dass im Android SDK mehrere Dateien im Umlauf sind, die alle denen ähneln, die Sie zum Anpassen verwenden sollten, und einige davon scheinen falsch zu sein oder zumindest nicht ordnungsgemäß mit den neuesten Tools (dem in tools/ant/main_rules.xml scheint nicht in meinem Windows SDK zu funktionieren). Ich glaube, die gewünschte Version ist in Plattformen/[plattformnummer] /ant/ant_rules_r2.xml im neuesten SDK enthalten. Auf jeden Fall sieht die Aufgabe wie folgt aus: Sie können einfach ein anderes Quellverzeichnis hinzufügen. Ich habe nicht versucht, mit Doppelpunkten zu trennen, wie die andere Antwort hier, denn wie gesagt, unsere build.xml musste auf verschiedene Arten angepasst werden. Aber ich weiß, das wird funktionieren.

<!-- Compiles this project's .java files into .class files. --> 
<target name="compile" depends="-resource-src, -aidl" 
      description="Compiles project's .java files into .class files"> 
    <!-- If android rules are used for a test project, its classpath should include 
     tested project's location --> 
    <condition property="extensible.classpath" 
         value="${tested.project.absolute.dir}/bin/classes" else="."> 
     <isset property="tested.project.absolute.dir" /> 
    </condition> 
    <condition property="extensible.libs.classpath" 
         value="${tested.project.absolute.dir}/libs" else="./libs"> 
     <isset property="tested.project.absolute.dir" /> 
    </condition> 
    <javac encoding="ascii" target="1.5" debug="true" extdirs="" 
      destdir="${out.classes.absolute.dir}" 
      bootclasspathref="android.target.classpath" 
      verbose="${verbose}" classpath="${extensible.classpath}" 
      classpathref="android.libraries.jars"> 
     <src path="${source.absolute.dir}" /> 
     <src path="${gen.absolute.dir}" /> 
     <src refid="android.libraries.src" /> 
     <classpath> 
      <fileset dir="${external.libs.absolute.dir}" includes="*.jar" /> 
      <fileset dir="${extensible.libs.classpath}" includes="*.jar" /> 
     </classpath> 
    </javac> 
</target>