JavaScript的生态系统
从历史上看,JavaScript生态系统缺乏适当的依赖管理器,与Java世界中已经存在多年的依赖管理器相比。国家预防机制登记册通常被认为是污染的,像这次的事故# npmgate进一步降低了社区对工具和存储库的信任。许多web开发人员只能梦想拥有“面向JS的Maven/Gradle和Maven中心”,而webjar使之成为可能。
WebJars是CSS和JavaScript库,如Bootstrap和JQuery,它们被打包到Java Archive (jar)文件中,并部署在公共Maven存储库上。然后,用户可以在Java包管理器中指定这些库,如Maven和Gradle,并将它们作为依赖项使用。这有效地允许web开发人员在他们的工作中享受Java世界的高级构建和依赖解析工具。
webjar的下载量已经超过了800万次,对于web开发人员来说,使用它来解析和构建他们的软件是一种非常流行的方式。
webjar最初是如何部署的?
每个WebJar都有一个包含POM文件的项目,该文件带有Maven构建定义,描述了所有必需的元数据和配置。在WebJar上运行Maven构建,从源代码中提取web库的源代码,将其打包到jar文件中,并将其部署到Maven Central上。
由于JavaScript库的数量持续增长,这种最初的手动缩放webjar的方法占用了太多的时间,而且只会变得更糟。例如,当时NPM存储库包含近30万个包,每天添加近500个新包。这将转化为许多小时的体力劳动。除此之外,许可挑战还影响了部署时间,因为糟糕的许可标准导致许多许可引用不能以可读的形式出现。
为什么宾托自动化是最佳解决方案
自动化是伸缩webjar项目的唯一方法,需要满足以下要求:
- 可用性上JCenter(以及Maven Central的向后兼容性)
- 按需部署
- 不需要额外的存储库
- 自动包含包元数据,例如源代码位置和许可要求
- 兼容NPM和Bower存储库,以便访问JavaScript库和元数据
JFrog Bintray满足所有WebJar项目规范,包括部署到JCenter(自动同步到Maven Central)、按需可用性、与NPM和Bower存储库的兼容性,以及自动包含元数据。
Bintray是实现webjar自动伸缩的理想选择。除了满足上述所有先决条件外,Bintray本身还支持所有主要的包格式,从而允许与行业标准的开发、构建和部署工具无缝协作。此外,它保留了许多REST API规范,Bintray的API简化了学习、使用和处理许可的复杂性。
为了完成所有这些,我使用了Bintray API,它实际上是一个非常棒的API。它确实保留了REST API的所有规范。它真的很容易学习和使用。这里的REST api非常直接,只是使用HTTP动词的标准REST来完成您所期望的事情。超级简单!
James Ward, Salesforce.com的工程和开源大使
Bintray的最佳管理控制台允许用户查看所有已部署的软件包及其相关文件、版本和状态。还包括其他元数据,例如源代码位置和许可证。Bintray还为用户提供了一个易于使用的界面来管理他们的工件版本。当部署失败并需要重新同步时,这尤其有用。
Bintray超出了自动化系统的基本需求,因为它广泛支持包格式、api和管理控制台。
按需部署与Bintray一起茁壮成长
现在自动伸缩部署过程只需要一分钟,由Bintray启用,只需要指定版本、组ID和工件ID。之后,WebJar可以在库中随时获得,用于Java构建。
在一年内,Bintray解决方案成功地实现了数千个按需部署,并且还在不断增长。

总结
James Ward自愿花了460多个小时手工部署webjar之后,他意识到他的持续承诺最好花在开发按需自动化流程上。有了JFrog Bintray,项目的需求很容易得到满足,Ward能够扩展他的webjar项目,允许社区根据需要部署webjar。

超越OSS
这个案例研究显示了Bintray api在促进OSS项目自动化方面的价值。
企业Bintray用户可以通过API获得更强大的功能,包括通过访问密钥和授权自动处理访问控制、详细统计信息、详细日志、动态下载、私有存储库、无限API查询等等。
有账户吗?去的溢价
没有账户?注册免费试用


