Я думаю, это в значительной степени зависит от того, какой проект вы на самом деле строите.Являются ли портлеты, о которых вы говорите, портлетами в смысле инкапсулированной функциональности и будут ли они использоваться как таковые (то есть, как, наконец, портлет в Liferay)?Они должны быть включены в разные проекты, на мой взгляд, если их функциональность не совпадает, и они не зависят друг от друга.
Если у вас есть ядро функциональности (например, уровень персистентности и связанная логика или другая бизнес-логика)Вы должны определенно использовать это как можно больше.Таким образом, я не думаю, что (1) является хорошим решением, и эту общую логику следует сгруппировать, например, в отдельном проекте, и сами портлеты зависят от этого.
Как общий подход: что будетпроблема, позволяющая всем разработчикам иметь доступ ко всем (или большинству) проектам?Общий код может быть повторно использован всеми портлетами, и все же каждый должен будет работать только со своей стороны.