Я планирую создать продукт, который будет иметь некоторые компоненты с открытым исходным кодом и некоторые коммерческие компоненты (не с открытым исходным кодом).
Намерение - открыть части продукта с максимальной функциональностью и получить вклад сообщества , Где коммерческие функции будут доступны по цене.
Как мне организовать свой код и стратегию сборки так, чтобы сообщество open source могло создавать, развертывать и запускать продукт самостоятельно, тогда как коммерческая версия будет использовать этот открытый исходный код инструменты, а также коммерческие компоненты с ним?
Код, который у меня сейчас есть, - это Java база кода Spring Boot и Node.js база кода, в которой есть как открытые, так и коммерческие компоненты.
Я планировал сделать следующее
1. Seperate out the OpenSource components as libraries.
2. Create a build process which will have some default build steps (building the Spring application or Node.js app) + adding the opensource libraries created in Step 1
3. Create a commercial build process (not open sourced) which will have some default build steps + adding the opensource libraries + adding the commercial libraries.
Любые предложения, если мой подход сработает, или есть ли лучшая альтернатива, доступная с подпроектами, будут оценены.