Да, я мог бы просто заархивировать исходный код, классы и даже javadoc в zip-файл и позволить клиентам моего компонента решать, что они хотят использовать (как Google делает с библиотеками гуавы), но стоит ли это того?
Конечно, оно того стоит! Это займет около 2 секунд или всего несколько минут, чтобы изменить ваши сценарии сборки.
Именно так большинство людей, распространяющих исходники и двоичные файлы, справляются с этой проблемой.
EDIT
Это не ваша точка зрения, которую вы должны учитывать. Вы должны думать об этом с точки зрения людей, внедряющих / использующих ваше программное обеспечение.
- Они не собираются использовать исходный код на платформе развертывания.
- Следовательно, размещение исходного кода в двоичном JAR-файле является пустой тратой дискового пространства, замедляет развертывание и замедляет запуск приложения.
- Если они хотят что-то с этим сделать, у них есть проблема. Как они восстанавливают файл JAR, чтобы избавиться от исходного кода? Откуда они знают, что безопасно оставить вне дома?
С точки зрения развертывателя / пользователя, здесь нет положительных сторон, только отрицательные.
Наконец, ваше мнение о том, что люди не могут отслеживать исходные или двоичные версии, на самом деле не выдерживает критики. Большинство людей, которые были бы заинтересованы в исходном коде, вполне способны сделать это. Кроме того, есть несколько простых вещей, которые вы можете сделать для решения проблемы, например, использование имен файлов JAR, которые включают номер версии вашего программного обеспечения, или помещение номера версии в манифест.