热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mvnxJVM世界的npx。

从一次性执行命令到日常使用,命令行工具是软件工程师工具带中必不可少的部分。每种流行的编程语言都有一个至少用于参数解析的框架,但是大多数语言还提供满足更复

从一次性执行命令到日常使用,命令行工具是软件工程师工具带中必不可少的部分。 每种流行的编程语言都有一个至少用于参数解析的框架,但是大多数语言还提供满足更复杂要求(例如提示或彩色输出)的组件。 但是,CLI的部署是语言生态系统不同的地方。

The Problem with JVM CLIs

是否想用Javascript编写CLI? 简单! 只需选择一些库,将您的想法转换为代码,上载到npm(或任何其他程序包注册表),就一切就绪。 现在,任何人都可以在npx的帮助下部署和使用CLI。

现在,JVM呢? 您选择一些库,编写代码,然后将工件上传到Maven注册表。 如果您正在编写Javascript库,那么您会不计其数在npmjs.com上的下载。 但是,对于JVM CLI则不是。 没有用于下载和执行maven存储库中的可运行JAR的标准工具。 因此,尽管您的工件普遍可用,但是要获得并执行CLI仍需要花费大量精力。

Enter mvnx

在过去的几个月里编写了一些Kotlin CLI,我决定接受这种情况。 我创建了mvnx,它大胆地宣称要解决maven存储库中可用的JAR的执行:

https://github.com/mvnx/mvnx

受npx启发,mvnx获取工件的maven坐标并处理其余部分。 看:

Cowsay on the JVM

如果您不想强制使用特定版本,则可以完全省略版本坐标! 在这种情况下,mvnx将获取最新版本。

$ mvnx -q com.github.ricksbrown:cowsay "Hello, World"

默认情况下,mvnx将查询中央存储库。 您可以通过指定支持HTTP Basic身份验证凭据和别名的自定义存储库URL来更改此行为。

专业提示:mvnx喜欢GitHub软件包!

Wrapping Up

JVM生态系统提供了大量优秀的库,以及稳定的依赖项管理解决方案。 在这些基础之上,CLI易于编写和分发,但难以获取和执行。 mvnx的目标是成为CLI创建者和使用者之间缺少的链接。

from: https://dev.to//battila7/mvnx-the-npx-of-the-jvm-world-2n59



推荐阅读
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • maven项目_idea导入本地maven项目
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了idea导入本地maven项目相关的知识,希望对你有一定的参考价值。首先把项目关闭Fil ... [详细]
author-avatar
一心向应丨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有