Практики и шаблоны для maven, использующие и распространяющие фляги, которые имеют лицензионные требования по кликам? - PullRequest
2 голосов
/ 27 мая 2011

Во-первых, не очень краткая справка ( ... заранее извиняюсь за ДОЛГОЙ вопрос ... перейдите к пункту № 6, чтобы перейти к актуальному вопросу :-) ... Давние пользователи Maven знают о проблемах старой (отсутствующей) "солнечной банки" . Обходные пути включали локальную установку (.m2 / repo) или запуск репо, например nexus , artifactory , и др. ... все только для работы- вокруг этой проблемы отсутствия всех наших артефактов в общедоступных репозиториях из-за необходимости нажать «согласиться» с лицензией.

Проблема солнечных банок в значительной степени осталась в прошлом, но проблема может стать хуже в не столь отдаленном будущем, поскольку корпорации начинают охватывать использование с открытым исходным кодом, в то же время разрешить бесплатную загрузку своего программного обеспечения (попробовать, прежде чем купить; бесплатное использование, но с ограничениями). Все их банки потребуют от вас «согласиться» с лицензией перед загрузкой. Если вы поддерживаете свое внутреннее репо, вы должны написать pom's, которые объявляют зависимости этих коммерческих jar-файлов ... потому что поставщик не . Может даже не быть очевидным, что коммерческие банки используют банки с открытым исходным кодом (и какую версию они используют), когда поставщик повторно объединяет все классы в один большой супер-jar (плохой) , который Затем вам придется вручную переупаковывать, чтобы избежать дублирования реализаций Spring, Log4j, Apache Camel, JDBC-драйверов и т.д. в вашем приложении.

Я надеюсь, что этот старый анти-паттерн скоро закончится: загрузка файлов jar вручную, ручная переупаковка и загрузка в локальный репозиторий; или, что еще хуже, установка вручную в {user} /. m2 / repository (среда каждого разработчика потенциально различна; мне нужно настроить / отладить среду сборки каждого QA-сотрудника ...).

Это также проблема для моих конечных пользователей, которые используют (коммерческое) программное обеспечение, которое я пишу, как распространено моим владельцем (например, моя компания ): моя корпорация не будет публиковать pom's или jar для общедоступный репозиторий maven из-за отсутствия какого-либо лицензионного лицензионного соглашения. (Любая компания может и должна публиковать pom с объявленными зависимостями (но все же требует, чтобы файлы jar загружались вручную с веб-сайта corp), но это потребовало бы большого обучения / объяснения для среднего звена. Не многие понимают pom или управление зависимостями (или разработка программного обеспечения)) ...

Короче говоря, это не проблема программного обеспечения; это не проблема Maven. Это была / была проблема, созданная юристом, но пока без решения, сделанного программистом (о котором я знаю). И мне любопытно узнать, каково статус-кво после всех этих лет ...

... Итак, мой вопрос:

Кто-нибудь знает схемы использования или даже решения проблемы создания проектов maven (или ivy) с «бесплатными» банками, которые требуют от вас нажать «Я согласен» с лицензией? Это то, что должно быть реализовано в клиенте maven, а также в репозитории maven. (Может быть, это существует сегодня?)

Сборка должна быть такой же простой, как один раз запустить mvn install, согласиться с лицензией, и тогда все сборки будут работать локально, пока вы не удалите свой локальный ~ / .m2 / репозиторий или не обновите свою версию зависимостей. И поэтому это также будет работать на вашем CI-сервере: после первой, первоначальной сборки, где вы гипотетически можете переходить по ссылке через пользовательский интерфейс hudson / jenkins.

(... Если есть ответ из одной строки / одной ссылки на этот слишком многословный вопрос (например, «просто установите плагин maven-world-peace-peace»), что ж, мои самые искренние извинения за затянувшийся "вопрос" ...!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...