maven的实践和模式,使用和分发具有点击许可要求的罐子?

时间:2011-05-27 04:25:29

标签: maven build-process

首先,一个不那么短暂的背景资料( ...我为LONG问题提前道歉...跳到第6段以获得实际问题 :-) .. 。长时间的maven用户知道旧(缺失)"sun jars"问题的痛苦。周围的工作包括本地安装(.m2 / repo)或运行像nexusartifactoryet al.这样的仓库......所有这些都只是为了解决这个问题。由于需要单击“同意”许可证,公共存储库中可用的工件。

太阳罐问题在很大程度上已成为过去,但在不久的将来,问题可能会变得更糟,因为公司开始接受使用必须编写声明这些商业罐子的依赖关系的pom ...因为供应商没有。当供应商重新讨论所有类into one big uber-jar (bad)时,商业罐子使用开源罐子(他们正在使用哪个版本)甚至可能都不明显,然后你必须手动重新包装以避免重复在你的应用程序中实现spring,log4j,apache camel,jdbc驱动程序,(等)。

我希望这个旧的反模式很快就会结束:手动下载罐子,手动重新包装&上传到本地回购;或者 - 更糟糕 - 在{user} /。m2 / repository中手动安装(每个开发人员的环境可能不同;我必须设置/调试每个QA人员的构建环境......)。

对于使用我编写的(商业)软件的最终用户来说,这也是一个问题,由我的所有者(呃,我的公司)分发:我的公司不会发布pom或jar由于没有任何点击许可协议而导致公共maven存储库。 (任何公司都可以&应该发布pom与所声明的依赖关系(但仍然需要从公司网站手动下载罐子),但这需要大量的教学/解释给中层管理人员。没有多少人了解pom或依赖管理(或软件开发))...

长话短说,这不是软件问题;这不是一个maven问题。这是一个律师制造的问题,因为没有程序员制造的解决方案(我知道)。而且我很想知道这些年来的现状是什么......

...那么,我的问题是:

有没有人知道使用“免费”罐子建立maven(或常春藤)项目的问题的使用模式甚至解决方案,要求您点击“我同意”许可证?这是必须在maven客户端以及maven repo中实现的。 (也许今天存在?)

构建应该像运行“mvn install”一样简单,同意许可,然后所有构建在本地工作就好了,直到删除本地〜/ .m2 /存储库或升级依赖项版本。因此,这也可以在您的CI服务器上运行:在初始构建之后,假设您可以通过hudson / jenkins用户界面进行点击。

(...如果对这个过于冗长的问题有一个单行/单链接的答案(例如,“只安装maven-world-peace-plugin”),那么,我最诚挚的道歉冗长的“问题”......!)

0 个答案:

没有答案