Konfiguracja budowania
Mechanizm budowania jest sterowany przez konfigurację budowania.
Konfiguracja budowania dla poszczególnych modułów dodatkowych, fragmentów i
składników jest zapisana w pliku build.properties odpowiedniego
elementu.
Kreatorzy projektów środowiska PDE generują plik build.properties
podczas tworzenia projektów modułów dodatkowych. Plik zawiera informacje o
sposobie kompilacji folderów źródłowych do postaci plików JAR. Informacje te mogą być
pośrednio aktualizowane na stronie Środowisko wykonawcze w edytorze
manifestów. Można je także modyfikować bezpośrednio w odpowiednim edytorze.
Środowisko PDE udostępnia prosty edytor plików build.properties
z widokami formularzy i kodu źródłowego.
Sam plik jest zgodny z formatem właściwości Java. Należy w nim wpisać szereg
kluczy i odpowiadających im wartości. Wartości
wielokrotne rozdziela się przecinkami.
Właściwości wspólne
- bin.includes - określa listę plików, które zostaną włączone do binarnej wersji budowanego modułu dodatkowego.
- bin.excludes - określa listę plików do wyłączenia podczas budowania binariów.
- qualifier - gdy numer wersji elementu kończy się przyrostkiem .qualifier, ta właściwość wskazuje wartość, którą należy zastąpić ten przyrostek. Dozwolone wartości tej właściwości to context,
<wartość> lub none. Wartość "context" spowoduje wygenerowanie daty zgodnej z datą systemową lub
użycie znaczników CVS, gdy proces budowania jest zautomatyzowany. Wartość
"wartość" to rzeczywista wartość właściwości. Wartość none spowoduje usunięcie przyrostka ".qualifier". Jeśli właściwość ta
zostanie pominięta, użyta zostanie wartość context.
- custom=true - wskazuje, że skrypt budowania został utworzony ręcznie, a nie automatycznie. Dlatego nie jest sprawdzana żadna inna wartość.
Właściwości charakterystyczne dla modułu dodatkowego
- source.<biblioteka> - określa listę folderów źródłowych, które zostaną skompilowane (na przykład source.xyz.jar=src/, src-ant/).
Jeśli biblioteka jest określona w pliku plugin.xml lub w pliku manifest.mf, wartość tej właściwości powinna być z nią zgodna.
- output.<biblioteka> - określa listę folderów wyjściowych, w których zostaną umieszczone wyniki kompilacji.
- source.<biblioteka> - określa listę plików, których kopie nie powinny być tworzone w bibliotece przez kompilator.
- extra.<biblioteka> - dodatkowe ścieżki klas używane do
wykonania automatycznego budowania. Ścieżka klasy może zawierać ścieżki względne
lub adresy URL platformy odnoszące się do modułów dodatkowych i fragmentów
używanego środowiska programistycznego (na przykład ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
Zalecane jest używanie adresów URL platformy zamiast ścieżek względnych.
- manifest.<library> - wskazuje plik, który będzie używany jako manifest dla biblioteki. Plik musi znajdować się w jednym z folderów źródłowych używanych jako źródło danych wejściowych dla pliku JAR.
- src.includes - określa listę plików do włączenia podczas budowania źródeł.
- src.excludes - określa listę plików do wyłączenia podczas budowania źródeł.
- jars.extra.classpath - (właściwość nieaktualna) ma taki sam efekt, jak właściwość extra.<biblioteka>, z tym że wpisy są stosowane do wszystkich bibliotek.
- jars.compile.order - definiuje kolejność, w jakiej powinny być kompilowane pliki JAR (w sytuacji, gdy występuje wiele bibliotek).
Wartości zdefiniowane dla kluczy kończących się przyrostkami "includes" lub
"excludes" są definiowane jako jako wzorce programu Ant. Standardowe
formaty zapewniają oczekiwane wyniki. Na przykład
"*.jar" wskazuje na wszystkie pliki JAR w katalogu najwyższego
poziomu. Domyślnie wzorce nie sięgają w głąb struktury katalogów. Aby na przykład opisać
wszystkie pliki Java, należy użyć wzorca "**/*.java".
Wzorzec "**" odpowiada dowolnej liczbie poziomów katalogów.
Podobnie, całe poddrzewa opisuje się przy użyciu wzorca "xyz/".
Właściwości charakterystyczne dla składników
- root - wyświetla listę plików i folderów, które muszą być
włączone w katalogu głównym produktu. Różne obsługiwane wartości to:
- <nazwaFolderu> - ścieżka względna do folderu, który ma zostać skopiowany.
- file:<nazwaPliku> - ścieżka względna do pliku, który ma zostać skopiowany.
- absolute:<nazwaFolderu> - ścieżka bezwzględna do folderu, który ma zostać skopiowany.
- absolute:file:<nazwaPliku> - ścieżka bezwzględna do pliku, który ma zostać skopiowany.
- root.<konfiguracja> - określa listę plików i folderów, które
muszą być włączone w katalogu głównym produktu, gdy jest on budowany dla
określonej konfiguracji. Część "konfiguracja" składa się z trzech segmentów konfiguracji rozdzielonych kropkami.
- root.permissions.<wartość_uprawnień> - określa listę plików i folderów, dla których zostanie wykonana komenda chmod w celu zmiany uprawnień. Odwołania do folderów muszą kończyć się znakiem "/".
- root.permissions.<konfiguracja>.<wartość_uprawnień> - określa listę plików i folderów, dla których zostanie wykonana komenda chmod w celu zmiany uprawnień dla określonej konfiguracji. Odwołania do folderów muszą kończyć się znakiem "/".
- root.link - określa listę par (oddzielonych
przecinkami) plików i folderów, które należy połączyć dowiązaniami
symbolicznymi. Pierwszy wpis wskazuje źródło (cel w terminologii systemów
Unix), a drugi nazwę dowiązania.
- root.link.<konfiguracja> - rozdzielana przecinkami lista par
plików i folderów, które należy połączyć dowiązaniami symbolicznymi dla danej
konfiguracji. Pierwszy wpis wskazuje źródło (cel w terminologii systemów
Unix), a drugi nazwę dowiązania.
- generate.feature@<idSkładnika> - wskazuje, że składnik
źródłowy idSkładnika będzie składnikiem źródłowym dla składnika
wskazywanego przez wartość tej właściwości. Wartości wymienione po pierwszym
przecinku wskazują elementy do pobrania z repozytorium.
- generate.plugin@<id_modułu_dodatkowego> - wskazuje, że źródłowy moduł dodatkowy id_modułu_dodatkowego będzie
źródłowym modułem dodatkowym dla modułu wskazanego przez wartość tej właściwości.
Poniższy przykład pochodzi z pliku build.properties składnika org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*