es4x 引用外部jar 包以及集成typescrip
以前写过一个通过修改jar 包处理自定义jar 的引入的,如下是一种使用官方推荐的方法package.json 添加依赖配置
同时为了方便使用添加typescript define 文件方便使用(只是demo,实际上如果看了官方发布的包为了这种方法)
项目准备
- 项目结构
├── README.md
├── dist
│ ├── id.js
│ └── index.js
├── id.d.ts
├── id.js
├── index.ts
├── package-lock.json
├── package.json
├── tsconfig.json
└── yarn.lock
- 代码说明
package.json:
{
"version": "1.0.0",
"description": "This is a ES4X empty project.",
"main": "dist/index.js",
"scripts": {
"test": "es4x test index.test.js",
"postinstall": "es4x install",
"start": "es4x run dist/index.js",
"build": "tsc -w"
},
"keywords": [],
"author": "",
"license": "ISC",
"name": "newapp",
"devDependencies": {
"@vertx/unit": "^3.8.4",
"typescript": "^3.7.2"
},
// jar 依赖声明
"maven": {
"groupId": "com.cedarsoft.commons",
"artifactId": "id",
"version": "8.9.2"
},
"dependencies": {
"@vertx/core": "^3.8.4"
}
}
tsconfig.json:
typescritp 配置,主要是关于编译以及特性配置的,具体参考https://github.com/rongfengliang/es4x-jar-deps-learning
index.ts:
入口
/// <reference path="node_modules/@types/es4x.d.ts" />
// @ts-check
import {id} from "./id"
vertx
.createHttpServer()
.requestHandler(function (req) {
req.response().end(id.createNameWithSpaces("DalongRongAppDemo"));
})
.listen(8080);
console.log('Server listening at: http://localhost:8080/');
id.js:
包装依赖的jar 包方便基于模块的开发
const id = Java.type("com.cedarsoft.id.NameSpaceSupport")
export {
id
}
export default id
id.d.ts:
typescript 类型定义文件,文件定义参考jar class 定义
declare class id {
static createNameWithSpaces(name:string):string
}
export {
id
}
运行
- 安装依赖以及生成运行入口的jar 文件
yarn
- ts 编译
yarn build
- 启动
yarn start
- 效果
yarn start
yarn run v1.19.1
$ es4x run dist/index.js
Server listening at: http://localhost:8080/
Succeeded in deploying verticle
- 访问

说明
以上是一个简单的项目引用三方jar 的方式,同时为了方便也集成了typescript 的包装处理,目前有一个不太好的地方对于包的安装使用的
是repo1.maven.org/maven2 地址进行下载的,对于私服方法的支持不太好(目前看着是硬编码),此方法同样可以应用到独立npm 包的
开发
备注: 纠正下,我们可以通过环境变量以及系统配置属性添加私服maven地址,代码如下

参考资料
https://github.com/rongfengliang/es4x-jar-deps-learning
https://github.com/reactiverse/es4x
https://reactiverse.io/es4x/
https://www.cnblogs.com/rongfengliang/p/11906794.html
es4x 引用外部jar 包以及集成typescrip的更多相关文章
- maven工程引用外部jar包
maven工程经常回遇到引用外部jar包,需要先安装在jar包,然后再在工程中pom.xml文件中添加依赖. 示例: 命令行中运行: mvn install:install-file -Dfile=E ...
- 有引用外部jar包时(J2SE)生成jar文件
一.工程没有引用外部jar包时(J2SE) 选中工程---->右键,Export...--->Java--->选择JAR file--->next-->选择jar fil ...
- java 编译 运行 及 引用外部 jar 包的方法
1. 环境变量配置 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_121; PATH%PATH%;C:\Java\jdk1.6.0_30\bin; CLASSPATH ...
- 利用命令行引用外部jar包以使程序正常执行的4种方法
声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo ...
- 将eclipse java程序打包成jar的总结(包括工程中没有引用外部jar包和有引用外部jar包两种情况)
一.当eclispe java工程中没有引用外部jar包时: 选中工程---->右键,Export...--->Java--->JAR file--->next-->填写 ...
- Jmeter引用外部jar包的几种方法
总结记录下jmeter引用外部jar包的3种方法及其优缺点: 一.测试计划中添加目录或jar包到Classpath 操作:测试计划->添加目录或jar包到Classpath-->浏览导入j ...
- maven项目引用外部jar包的方法
问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称\sr ...
- Java项目引用外部jar包时,使用bat启动
1.将项目导出为jar包 1)点击项目—>右击—>点击Export—>进入export页面 2)点击JAR file——>Next——>勾选项目——>选择jar包存 ...
- 2017.5.1 使用fat jar插件来打包有引用外部jar包的项目
如果在程序开发时用到了第三方提供的API.jar包或者其他附属资源.在导出并生成项目的jar文件时,必须将第三方的文件一并导出,否则无法正确运行. 可以使用fat jar插件,下载地址:http:// ...
随机推荐
- Java连载9-数据类型&字符编码
一.数据类型注意:(1)计算机最初只支持英文,最先出现的字符编码是:ASII码例如:‘a'对应97,对应01100001(2)编码和解码的时候采用同一套字典/对照表,不会出现乱码.否则会出现乱码.二. ...
- 创建简单Maven项目
目录: Maven基础构建概念.仓库.构建与部署 Maven作用 Maven项目install Maven安装配置.目录结构.配置文件 配置Maven默认本地仓库 Maven常见命令 使用Maven ...
- git 版本库之间的依赖 --submodule
自己做实验: 在github上建一个版本库B作为submoule: https://github.com/FrankKuiFang/testGit_submodule, 尝试将该版本库作为另一个库A ...
- SQL --------------- between 和< >
between值 and 值 运算符用于选取介于两个值之间的数据范围内的值,常与where一块使用between运算符选择给定范围内的值.值可以是数字,文本或日期. 使用between的时候会与and ...
- 【FPGA】Verilog实现交通信号灯
大二数字电路的课程设计中,有一份日常作业使用Xilinx FPGA实现简易交通信号灯,但很可惜当时时间有限,没能最终完成.正好在这一学期选修SOPC设计课程,同样采用了Xilinx FPGA,故打算重 ...
- 《 .NET并发编程实战》实战习题集 - 1 - 隔离副作用
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- 【Navicat】使用navicat执行sql 查询速度很慢解决方法
========================== Navicat 远程连接Mysql执行普通sql速度慢问题: 场景: navicat可以连接上 远程服务器的mysql.但是在navicat执行最 ...
- Python range() 函数用法及字符串下标
range() 函数用法 range() 函数可创建一个整数列表,一般用在 for 循环中 range() 函数的表示方法: range(start, stop[, step]) start: 计数从 ...
- 排序算法Java代码实现(四)—— 归并排序
本篇内容: 归并排序 归并排序 算法思想: 将两个或两个以上的有序表合并成一个新的有序表, 即把待排序序列分成若干个子序列,每个子序列是有序的,然后在把有序子序列合并为整体有序序列. 此算法分为两步: ...
- 开发--Deepin系统安装
开发|Deepin系统安装 在18小时前,我刚刚萌生了一个将我的笔记本换成linux系统.在18小时后的现在,在我各种试错之后,笔记本已经开始跑起linux了.在科技的时代,只要是想法,都可以试一试. ...