Comments 9
Дело конечно каждого, лично я больше за вложенную структуру проекта, визуально более понятно, прозрачное наследование, зависимости:
androidApp/
|-- app
| |-- launcher
| | |-- src
| | `-- pom.xml
| |-- screen
| | |-- src
| | `-- pom.xml
| `-- pom.xml
|-- distrib
| |-- assembly
| | |-- src
| | | `-- assembly
| | `-- pom.xml
| |-- deploy
| | `-- pom.xml
| `-- pom.xml
|-- lib
| |-- src
| | |-- androidTest
| | | `-- java
| | |-- main
| | | |-- aidl
| | | |-- assets
| | | |-- import
| | | |-- java
| | | |-- res
| | | `-- AndroidManifest.xml
| | `-- test
| | `-- java
| `-- pom.xml
`-- pom.xml
Да, конечно, проект может иметь несколько уровней вложенности, например, https://bitbucket.org/JRS/open-flexess/src. Но я и в этом случае придерживаюсь правила — создавать каталог для узловых "pom" файлов по причинам, изложенным выше в статье. Но у вашего варианта есть одно большое преимущество — он стандартный :)
На самом деле описанный мной способ и указанный в статье, оба являются стандартами — aggregation и inheritance, со своими особенностями. Просто лично я предпочитаю аггрегацию=)
Да, вот только, из вашего примера не было ясно, что в дочерних помах нету ссылок на родителя — только структура каталогов — а она как раз самая, что ни на есть классическая :) Что касается наследования и агрегирования, то мне ближе наследование между иерархией (деревом) супер помов и проектами (пример 1), тогда как внутри проектов я предпочитаю комбинацию агрегирования и наследования, как в 5 примере.
Идеальный мавен. Часть 2: структура проекта