Включить Java-проект в качестве библиотеки

У меня три проекта в рабочем пространстве eclipse:

EventKitchenCore EventKitchenDesktop EventKitchenAndroid 

EventKitchenCore содержит все основные функции, а EventKitchenDesktop и EventKitchenAndroid – это, по сути, просто разные пользовательские интерфейсы.

Я добавил EventKitchenCore и работал в библиотеке в EventKitchenDesktop , но я не могу понять, как добавить его в качестве библиотеки EventKitchenAndroid .

Как мне это сделать? Было бы болью в tush, чтобы экспортировать как кувшин в каталоге lib каждый раз, когда я делаю изменения …

Я попытался добавить проект Core в Properties > Java Build Path > Libraries и Properties > Android > Library , но не повезло: \

Обновление – на данный момент я получил его, выполнив экспорт основного проекта в виде jar в папке libs. Однако я делаю частые изменения, и, как я уже сказал, это боль в туше.

Eclipse имеет встроенную поддержку Ant . Вы можете использовать его для автоматического создания JAR текущего проекта и поместить его в папку другого проекта.

Если проекты EventKitchenAndroid и EventKitchenCore находятся в одной рабочей области, создайте файл build.xml в проекте EventKitchenCore который содержит только следующее:

 <?xml version="1.0" encoding="UTF-8"?> <project name="EventKitchenCore" default="createjar"> <target name="createjar"> <jar destfile="../EventKitchenAndroid/libs/EventKitchenCore.jar" basedir="bin" /> </target> </project> 

Чтобы проверить его, выберите файл в Eclipse и нажмите Ctrl + F11, чтобы запустить его как файл сборки Ant. Если он работает так, как вы хотите, вы можете сказать Eclipse автоматически выполнять этот файл сборки каждый раз, когда проект построен. Перейдите к свойствам проекта EventKitchenCore и в свойстве Builders , нажмите « Импорт …» и выберите файл build.xml который вы только что создали.

Теперь он будет выполняться каждый раз, когда проект будет построен. Вы можете вручную принудительно построить проект, нажав Ctrl + B. См. Также видео-демонстрацию, которую я только что создал.

Вы можете настроить свои проекты как Артефакт Maven, который зависит от EventKitchenCore, так что Maven справится с этим для вас:

EventKitchenCore pom.xml:

 <project ...> <modelVersion>4.0.0</modelVersion> <groupId>com.adamgaskins</groupId> <artifactId>event-kitchen-core</artifactId> <packaging>jar</packaging> <version>0.0.1-SNAPSHOT</version> <name>EventKitchenCore</name> </project> 

EventKitchenDesktop pom.xml:

 <project ...> <modelVersion>4.0.0</modelVersion> <groupId>com.adamgaskins</groupId> <artifactId>event-kitchen-desktop</artifactId> <packaging>jar</packaging> <version>0.0.1-SNAPSHOT</version> <name>EventKitchenDesktop</name> <dependencies> <dependency> <groupId>com.adamgaskins</groupId> <artifactId>event-kitchen-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependencies> </project> 

EventKitchenAndroid pom.xml:

 <project ...> <modelVersion>4.0.0</modelVersion> <groupId>com.adamgaskins</groupId> <artifactId>event-kitchen-android</artifactId> <packaging>apk</packaging> <!-- for this, you need the maven-android-plugin --> <version>0.0.1-SNAPSHOT</version> <name>EventKitchenAndroid</name> <dependencies> <dependency> <groupId>com.adamgaskins</groupId> <artifactId>event-kitchen-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependencies> </project> 

Не забывайте о суффиксе SNAPSHOT, иначе Maven не будет обновлять ваши изменения.

Простейшей идеей (которая будет работать вне Eclipse тоже) было бы создание символической ссылки / ярлыка из вашего каталога пакетов библиотеки в src папку ваших проектов:

 |- EventKitchenCore |- src/ |- org.your.library.package <-+ |- EventKitchenDesktop | |- src/ | |- org/desktop/something/ | |- symlink to ----------------+ |- EventKitchenAndroid | |- src/ | |- org/android/something/ | |- symlink to ----------------+ 

Таким образом, вы можете скомпилировать фактические проекты, как если бы ваша библиотека была частью приложений, и ваши изменения сразу отражаются в обоих ваших проектах.

Я бы сказал, как предлагают некоторые авторы, использовать maven или ant. Конфигурация проста, большинство из них уже поставили их, так что это вопрос копирования и вставки. Когда вы находитесь в среде разработки, вы можете добавить проекты в свой путь сборки. Перейдите по пути создания и выберите вкладку «проекты» и добавьте нужные вам проекты, поэтому каждый раз, когда вы вносите изменения, все изменения видны для связанных проектов. Когда вы собираетесь развернуть, вы можете использовать maven или ant. Однако вы можете начать с обоих из них в процессе разработки. Но если вы хотите быстро исправить, я бы предложил ссылаться на проекты, если вы еще не хотите использовать maven или ant. Но при развертывании я настоятельно рекомендую использовать один из этих двух менеджеров проектов, потому что, как вы упомянули, экспортируйте проекты как банки, а затем добавьте их в папку с библиотеками, это боль.

Вот решение, которое может вам помочь:

1) Eclipse-Package Explorer – ваш проект (Android) – Rightclick в вашем проекте.

2) Нажмите Android (в левой части экрана). Теперь ваш экран может выглядеть так:

Введите описание изображения здесь

Теперь в нижней части экрана в разделе «Библиотека» вы можете напрямую добавить весь проект библиотеки, не делая JAR. Просто вам нужно импортировать эти проекты библиотек в рабочее пространство или весь проект библиотеки должен быть открыт в eclipse.

1) Нажмите кнопку «Добавить», вы получите список доступных библиотечных проектов, выберите их и создайте свой проект.

Удачи..

Вам нужно перейти к настройкам проекта, который вы хотите создать в библиотеке, и проверить « Is Library в подменю Android . Затем вы можете попробовать снова импортировать проект.

Я считаю, что вы ищете вариант «Источник ссылок» в Eclipse. В своем проекте Android выберите проект и щелкните правой кнопкой мыши, чтобы выбрать «Путь сборки»> «Источник ссылок». Это позволит вам получить доступ к вашей библиотеке Java в том же пути сборки, что и ваше приложение для Android.

Если вы хотите всего лишь ссылаться на код основных проектов, то в Eclipse вы можете просто ссылаться на этот проект из проекта Android. (Функция «Библиотечный проект» предназначена только для проектов библиотеки Android, у вас есть обычный Java-проект здесь?)?

Поэтому в вашем обозревателе пакетов у вас есть все три проекта (Core, Android и Desktop). Щелкните правой кнопкой мыши EventKitchenAndroid и выберите «Свойства». Выберите вкладку «Путь сборки Java» -> «Проект» и нажмите кнопку «Добавить …». Выберите EventKitchenCore . Перейдите на вкладку «Заказ и экспорт» и убедитесь, что проект EventKitchenCore установлен, и вам хорошо идти. Любые изменения в источнике EventKitchenCore немедленно доступны для Android-проекта.

Так я следую за добавлением библиотеки в свои проекты

Проект с библиотекой

ФАЗА 1: Создание проекта библиотеки

Здесь на изображении вы можете увидеть 2 проекта с именем library и ListSamples, которые используют библиотеку

Чтобы сделать проектную библиотеку как проект библиотеки, щелкните правой кнопкой мыши по проекту и выберите свойства

Настройка библиотеки

Марк IsLibrary, чтобы сделать его библиотекой

Вы можете увидеть файл .jar в папке bin в библиотечном проекте

Скомпилированный Libary

Теперь создается проект библиотеки

ФАЗА 2: Добавление проекта библиотеки в проект android

Теперь щелкните правой кнопкой мыши на своем проекте Android и выберите его свойство. Затем нажмите кнопку « Добавить» внутри области библиотеки и установите для нее путь к вашему проекту библиотеки

Введите описание изображения здесь

Введите описание изображения здесь

Затем появится всплывающее окно с отображением списка проектов библиотек, которые вы создали в eclipse, который в настоящее время активен (проекты закрытой библиотеки не отображаются)

Введите описание изображения здесь

Здесь у меня есть только один проект, поэтому он указан здесь

Выберите всю необходимую библиотеку и нажмите « ОК» . Теперь проекты библиотеки будут добавлены в ваш проект

Введите описание изображения здесь

При проверке вашего проекта Android вы можете увидеть, что файл .jar вашего проекта добавлен в ваш проект Android.

Введите описание изображения здесь

ПРИМЕЧАНИЕ. – Если вы используете пакет поддержки Android ( android-support-v4.jar ) в проекте библиотеки, нет необходимости добавлять его снова в свой Android-проект.

Вы также можете использовать ant для добавления библиотеки в проекты. Но я не знаю об этом.