2013-05-01 4 views
18

(В случае, если это имеет значение, это проекты Java Android)Как управлять подпроектами git subodule в Eclipse?

Проект является проектом библиотеки.

Проект B зависит от A. Для удобства управления проектами по всем другим людям, а не только мне, A содержится в пределах B через подмодуль git.

Это означает, что, если я хочу, чтобы внести изменения в как и B, у меня будет следующее:

  1. проекта сам
  2. Project B
  3. B подмодуль A, назовем его A '. Тот же код, одно и то же имя проекта, другое место на диске.

В идеале я хотел бы быть в состоянии удовлетворять следующим условиям:

  1. Уметь изменять сам непосредственно в Eclipse.
  2. Уметь модифицировать B и построить его, ссылаясь на A ', все внутри Eclipse.
  3. Я действительно не нужно А» как импортируемый проект/нет необходимости изменять его, но я хотел бы, чтобы автоматически создать свой файл банка и иметь, что ссылаться B.

Что я пробовал:

  1. Просто импортировать как и : Не работает, потому что затмение не может импортировать два проекта с тем же именем. Я не могу просто изменить имя либо потому, что это подмодуль; должен был бы сделать это каждый git update, неприемлемый.
  2. Добавление ссылки на внешнюю библиотеку на A ', полностью исключая его из Eclipse: на самом деле это не так уж плохо для решения, но для его работы требуется хотя бы одна внешняя сборка из командной строки (с использованием ant). ... не самое удобное.
  3. Ведение ссылки на источник: Не чистейший, потому что (и впоследствии ) имеют несколько папок с исходными внутри них, так что я должен был бы обновлять каждый раз, когда я добавить или удалить исходные папки в .Я бы предпочел просто использовать банку прямо.

Есть ли способ, чтобы держать это все в Eclipse, или я должен сделать что-то вроде # 2, но с добавлением внешней команды сборки для вызова ant на А»?

+0

Почему бы не импортировать B и A ', но не A? – karmakaze

+0

Потому что # 1 утверждает, что я хочу иметь возможность легко изменять/изменять ** A **. –

+0

Я допрашивал это требование. Да, вы хотите иметь возможность изменять проект A, но почему не только проект A, находящийся в местоположении A '? – karmakaze

ответ

-1

Просто используйте систему построения проекта для отслеживания зависимостей (для этого они подходят).

Я бы вы предложили использовать gradle (желательно ИМХО, но проверить, какой лучше подходит в вашем контексте) или maven, как может обрабатывать подпроектов довольно хорошо и может генерировать конфигурацию затмения для вас.

+2

Пример и дальнейшая спецификация будут оценены. – Warpzit

+0

@Warpzit, я даю ему другой подход к проблеме, оба инструмента хорошо документированы, например (из документации maven Getting Started): http://maven.apache.org/guides/getting-started/index.html# How_do_I_build_more_than_one_project_at_once –

+0

Создать .. какую конфигурацию Eclipse? Могу ли я просто получить эту магическую конфигурацию вручную поначалу? Тогда я это рассмотрю. –

1

У меня подобная ситуация. Импортируйте B как существующий (android) проект в eclipse после того, как вы скроете его. Убедитесь, что проект A инициализирован и обновлен (через git).

Теперь сделайте file-> импортировать существующий проект (андроид, если A - проект Android) и перейти туда, где проект субмодуля A находится внутри вашего проекта B и добавить его.

Теперь у вас есть два отдельных проекта в затмении. Вы можете изменить оба проекта, и все это будет в рамках проекта B, потому что именно там расположены оба проекта.

0

Поскольку это специально для Android, вы изучали библиотеки Android?

В моем случае у меня есть бесплатная (B) и оплаченная версия (C) моего приложения. Оба имеют общую базу кода (A). В eclipse я создаю A-библиотеку Android, и B и C используют эту библиотеку, и все 3 являются отдельными git-репозиториями. С помощью этой настройки изменения, которые я делаю в A, автоматически доступны в B и C, и мне нужно поддерживать только одну базу кода для каждого проекта. Никаких сценариев сборки/конфигов.

Я думаю, что такая простота - это то, чем вы были? Извиняюсь, если я неправильно понял вопрос.

0

Я не уверен, если я получил вашу установку право:

Проект A: ЦСИ
+ /projecta.jar (двоичном проекта A)

Проект B:/ЦСИ
+/Библиотека/Project A/SRC, как подмодуль
+ /lib/projecta.jar (двоичном проекта A)

..now вы меняете АА»и компилировать его, желая испытать его перед толкая/совершали, не так ли?
это нормально, если вы просто используете банку в B, или вам нужен источник в проекте B, обновленном до A '?

первый случай: есть муравей файл компилировать в проекте A и развернуть его в B, а что муравей файл не является частью проекта а, его просто локальный обходной (ее полезно иметь его в муравья зрения затмения)

Эскиз:

<property name="projectb.libdir" value="..."/> set appropriate place in project B 

<javac fromdir="./src" todir="./build" ...><fileset ... /></javac> 

<jar /> from build to projecta.jar 

<copy /> projecta.jar to projectb.libdir 

Альтернатива заключается в создании .jardesc в затмении, так что вы можете запустить «создать банку» на RightClick.

это то, что вы хотели сделать?

0

Eclipse Mars Milestone 5 (4.5.0M5) имеет поддержку Multiproject. Вам нужно импортировать «Существующий проект» из подпапки.

Смежные вопросы