Подтвердить что ты не робот

Как управлять подпроектами подмодулей git в Eclipse?

(В случае, если это имеет значение, это проекты Java Android)

Проект A - это проект библиотеки.

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

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

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

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

  • Уметь изменять A непосредственно в Eclipse.
  • Уметь модифицировать B и создать его, ссылаясь на A, все внутри Eclipse.
  • Мне не нужен A как импортированный проект/нет необходимости его изменять, но я бы хотел, чтобы он автоматически создавал свой файл jar и ссылался на B.

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

Я не уверен, правильно ли я прав:

Проект A: src
+/projecta.jar(двоичный код проекта A)

Проект B:/src
 +/lib/Проект A/src как подмодуль
 +/lib/projecta.jar(двоичный код проекта A)

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

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

Эскиз:

<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 в eclipse, поэтому вы можете запустить "create jar" в rightclick.

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

Ответ 4

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

Ответ 5

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

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