Лучший метод плюща: разбить код на несколько проектов или использовать один проект с несколькими конфигурациями? - PullRequest
4 голосов
/ 08 октября 2010

На работе у нас есть ряд проектов, которым нужно поделиться общим кодом.Некоторый код является полностью универсальным, в то время как часть кода используется только подмножеством наших проектов.Должен ли я разделить общий код на два отдельных проекта или использовать две разные конфигурации ivy для одного проекта?


Вариант 1 - Два отдельных проекта.

  • Proj 1 - Общий опубликован как конфигурация по умолчанию
  • Proj 1 - Общий XML опубликован как конфигурация по умолчанию

Потенциальные проблемы: Требуется, чтобы у меня было два отдельных проекта с двумя отдельнымифайлы сборки и два отдельных файла ivy.

Вариант 2 - один проект, несколько конфигураций плюща для различных артефактов

  • Артефакт 1 - Общий опубликован как core
  • Артефакт 2 - общий xml, опубликованный как core-xml

Потенциальные проблемы: возможно, мне придется поддерживать отдельные исходные каталоги в одном проекте.

В любом случаеобщий xml-компонент может опираться на общий базовый компонент.


Итак, SF, что я должен сделать для поддержки моего общего кода?Какие проблемы я пропустил с этими двумя методами, и каковы другие плюсы / минусы или альтернативные решения?

1 Ответ

1 голос
/ 08 октября 2010

Хм, все сводится к тому, как вы предпочитаете управлять своим исходным кодом. Но сначала я бы задал вопрос о том, действительно ли вам нужно разделить источник. Идея общего проекта заключается в инкапсуляции кода, классов, интерфейсов и т. Д., Которые могут использоваться в качестве общего инструментария другими проектами. Это не значит, что эти проекты должны использовать все в Commons. Они могут использовать только небольшую его часть. Это совершенно нормально, и, возможно, разделение ваших общих ресурсов фактически закончится оптимизацией.

Подумайте об этом - что произойдет, если ваш следующий проект использует другое подмножество библиотеки Commons? ты собираешься снова разделиться?

...