RU | EN
Следуйте этой инструкции, чтобы настроить, скомпилировать и работать с исходным кодом Apache Harmony. Для этого, необходимо:
После успешной сборки, вы сможете запускать Java приложения , используя Harmony.
Если вам не нужен весь комплект разработчика Harmony Java SE (HDK), и вы намерены работать с отдельными частями кода Apache Harmony, следуйте пошаговой инструкции для построения отдельных компонент этого комплекта.
Проект находится на стадии разработки. При обнаружении ошибок, воспользуйтесь поиском по архиву почтовой рассылки проекта и списком ЧАВО - возможно, ваша проблема уже выявлена и решена. Если вы не нашли нужную информацию, пришлите нам описание проблемы, и мы постараемся помочь.
Для работы с Harmony необходимо установить следующее ПО:
Примечание: если у вас включен брандмауэр,
настройте соединение через прокси-сервер для работы с ant и svn.
Для svn, следуйте указаниям в документации клиентского приложения.
Например, для использования консольной версии svn внесите
соответствующие изменения в файл ~/.subversion/servers.
Для работы ant, укажите следующие значения для переменной окружения
ANT_OPTS:
-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<proxy>
Необязательным (но рекомендкемым) ПО является Eclipse Java Compiler (ECJ),
версия 3.2 или более поздняя.
Вы можете скачать
ecj.jar как отдельный файл и поместить его в папку ANT_HOME/lib.
В качестве альтернативы, вы можете использовать любой другой компилятор для
Java 1.5, совместимый с Ant, посредством переопределения переменной
hy.javac.compiler.
В зависимости от платформы (см. список поддерживаемых платформ) вам понадобится ряд других программ, наиболее общий список которых приводится ниже.
Windows
Linux
Примечание:
Вам необходимо убедиться, что вы правильно настроили своё окружение для работы с
указанными выше программами. В частности, переменные окружения (такие как PATH)
содержат все необходимые файловые пути и т.д., так что вы можете успешно работать
со всеми инструментами из командной строки.
Например, для использования C++ компилятора на Windows, как правило, потребуется
запустить соответствующий скрипт (такой как
"Visual Studio .NET 2003 Command Prompt") непосредственно перед началом сборки.
Отдельные компоненты системы сборки также зависит от сторонних программных продуктов и библиотек. Поскольку эти требования постоянно эволюционируют, мы рекомендуем запустить систему сборки и автоматически загрузить недостающие компоненты через Интернет.
Для построения виртуальной машины DRLVM, одного из основных компонентов системы, требуются:
Данные компоненты необходимы для построения исходного кода как на Windows, так и на Linux системах.
Вы можете загрузить и установить дополнительные компоненты до сборки DRLVM и указать их расположение
(например отредактировав файл make/depends.properties в рабочем пространстве компоненты).
Однако, поскольку требования к ПО периодически изменяются, не рекомендуется самостоятельно устанавливать
недостающие программы. Система сборки сделает это за вас.
ПО Harmony разделено на несколько компонент. Для построения всего ПО вам необходимо построить библиотеку классов, виртуальную машину и инструменты Java разработчика. Используйте федеративную систему сборки для построения всей среды, а затем работайте с библиотекой классов и/или ВМ по вашему выбору. В настоящее время, система сборки использует виртуальную машину DRLVM.
Для того, чтобы загрузить федеративную систему сборки из SVN репозитория, используйте следующую команду:
$ svn co http://svn.apache.org/repos/asf/harmony/enhanced/trunk
Данная команда создаст пустые директории
common_resources, working_classlib,
working_vm и working_jdktools. На следующем
этапе федеративная система сборки загрузит необходимый исходный код и
соберёт JDK. Директория working_classlib будет содержать
копию дерева каталогов библиотеки классов, директория
working_vm - копию дерева каталогов DRLVM, и так далее.
Примечание: в ОС Windows, если корневая директория системы сборки находится на много уровней ниже корневого каталога, излишне длинный путь к библиотеке классов может вызвать ошибку при попытке загрузить исходный код. Для решения этой проблемы, переместите корневую директорию системы сборки выше по дереву каталогов или смените операционную систему.
На этом этапе система готова начать сборку. Во время первого запуска системы потребуется загрузка всех необходимых внешних компонент. Система сборки оповещает пользователя об отсутствии необходимых компонент или изменении в требованиях, так что процедуру загрузки внешних компонент необходимо будет периодически повторять.
Для того, чтобы загрузить необходимые сторонние компоненты, исходные тексты Harmony и построить готовую среду исполнения и комплекты разработчика Harmony Java SE (JRE, JDK и HDK), в корневой папке системы сборки вызовите следующую команду:
$ ant -Dauto.fetch=true all
Данная команда загружает сторонние компоненты, которые могут распространяться под различными
лицензиями, отличающимися от лицензии Apache, см. полный список лицензий в файле
THIRD_PARTY_NOTICES.txt в корневой папке.
Скачивать дополнительные компоненты потребуется только во время первого прогона сборки. Для последующих прогонов, достаточно использовать команду
$ ant
Для построения полной сборки настоятельно рекомендуется увеличить объем динамической памяти (Java heap), используемой программой Apache Ant. Для этого, измените значение переменной окружения ANT_OPTS доступным для вашей операционной системы способом, например:
ANT_OPTS='-Xms256m -Xmx512m'
Если вы предполагаете использовать только отдельные части исходного кода, вам не обязательно строить весь комплект разработчика. В таком случае, не вызывайте ant и следуйте пошаговой инструкции как указано ниже.
Для извлечения полного дерева каталогов для всех компонент, удобно использовать скрипт
build.xml федеративной системы сборки. В корневой директории системы сборки,
выполните следующую команду:
$ ant populate-src
Данная команда скачивает из SVN репозитория исходные тексты библиотек классов,
ВМ и утилит в директории working_classlib,
working_vm и working_jdktools соответственно,
причем версия извлеченного кода соответствует версии файла build.xml.
Поскольку дерево каталогов довольно велико, загрузка всех каталогов может занять продолжительное время.
При желании, вы можете сэкономить время и сетевые ресурсы, скачав только интересующие вас компоненты вручную. В таком случае, для сборки вам дополнительно потребуется готовый пакет разработчика HDK, который вы можете скачать с сайта Apache Harmony.
По прошествии времени, вы можете синхронизировать вашу копию исходного кода с текущей версией
в SVN репозитории, вызывая команду svn update в нужной директории, например:
$ cd working_classlib $ svn update
Таким способом вы можете получать обновления кода любого из компонент. После исполнения команды в вашем дереве каталогов отобразятся все изменения, внесенные в SVN репозиторий после предыдущей синхронизации.
Примечание:
если после обновления дерева каталогов появляется ошибка при построении библиотеки классов, удалите результаты предыдущей сборки командой
$ ant clean
На данном этапе система готова скомпилировать исходный код. Необходимо собирать компоненты в следующем порядке: сперва библиотеку классов, затем ВМ, затем утилиты. Это важно, поскольку между компонентами существуют зависимости, каждая последующая компонента использует результаты сборки предыдущей.
Все компоненты имеют унифицированные интерфейсы к системам сборки, т.е. они поддерживают одинаковый базовый набор команд и переменных. Поэтому последующие шаги даются на примере библиотеки классов, но применимы ко всем другим компонентам.
Во время первой сборки система загружает все необходимые сторонние компоненты. Система сборки оповещает пользователя об отсутствии необходимых компонент или изменении в требованиях, так что процедуру загрузки внешних компонент потребуется периодически повторять.
Для загрузки внешних компонент и сборки библиотеки классов используйте следующие команды:
$ cd working_classlib $ ant fetch-depends $ ant
Теперь вы можете протестировать результаты сборки. Каждая компоненты включает
достаточно полный набор тестов на функциональность и должна успешно выполнять 100% из них.
Примечание: для тестирования библиотеки классов вам необходима виртуальная машина.
Вы можете использовать не только DRLVM, см. раздел
Конструирование среды исполнения.
Если вы хотите тестировать библиотеку классов вместе с DRLVM, приступайте к сборке DRLVM.
Выполните следующую команду для построения и прогона полного набора тестов:
$ ant test
Сборка завершена. Результаты сборки для каждого компонента находятся
в директории deploy/jdk/jre внутри соответствующего рабочего пространства.
Примечание
DRLVM создаёт директорию deploy только если переменная deploy.canonical.flag
была выставлена в значение TRUE. В противном случае результаты сборки
расположены глубже по дереву каталогов как build/<ваша-платформа>/deploy/jdk/jre.
Вы можете получить дополнительную информацию о доступных командах и опциях для каждого из компонент при помощи команды:
$ ant help
Разработчики библиотек классов могут использовать виртуальную машину DRLVM или установить другую совместимую ВМ. Например, вы можете использовать IBM virtual machine которая была предоставлена компанией IBM для нужд разработчиков проекта на условиях пробной, не открытой лицензии на выполняемый код. Для установки ВМ следуйте прилагающейся документации. Вы можете развернуть дерево каталогов библиотек классов поверх дерева каталогов Harmony, так что директории 'jdk' совпадут.
Windows:
$ unzip <path_to_vm_zip> -d ../..
Linux:
$ tar xzf <path_to_vm_tarball> --directory ../..
Для работы с библиотекой классов Harmony, используйте подробную документацию для этого компонента.
Разработчики виртуальной машины DRLVM могут пользоваться результатами сборки DRLVM напрямую, они включают в себя полную среду исполнения Java, состоящую из DRLVM и библиотеки классов.
Убедитесь, что переменная окружения JAVA_HOME не имеет
значения или указывает на директорию сборки Harmony
(deploy/jdk/jre если вы собирали по этой инструкции).
Используйте стандартный синтаксис для запуска Java-приложений:
$ deploy/jdk/jre/bin/java -showversion -jar helloworld.jar Apache Harmony Launcher: (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable. java version "1.5.0" pre-alpha : not complete or compatible svn = r479551, (Nov 27 2006), Windows/ia32/msvc 1310, debug build http://harmony.apache.org Hello world!