以前写过一个通过修改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的更多相关文章

  1. maven工程引用外部jar包

    maven工程经常回遇到引用外部jar包,需要先安装在jar包,然后再在工程中pom.xml文件中添加依赖. 示例: 命令行中运行: mvn install:install-file -Dfile=E ...

  2. 有引用外部jar包时(J2SE)生成jar文件

    一.工程没有引用外部jar包时(J2SE) 选中工程---->右键,Export...--->Java--->选择JAR file--->next-->选择jar fil ...

  3. java 编译 运行 及 引用外部 jar 包的方法

    1. 环境变量配置 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_121; PATH%PATH%;C:\Java\jdk1.6.0_30\bin; CLASSPATH ...

  4. 利用命令行引用外部jar包以使程序正常执行的4种方法

    声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo ...

  5. 将eclipse java程序打包成jar的总结(包括工程中没有引用外部jar包和有引用外部jar包两种情况)

    一.当eclispe java工程中没有引用外部jar包时: 选中工程---->右键,Export...--->Java--->JAR file--->next-->填写 ...

  6. Jmeter引用外部jar包的几种方法

    总结记录下jmeter引用外部jar包的3种方法及其优缺点: 一.测试计划中添加目录或jar包到Classpath 操作:测试计划->添加目录或jar包到Classpath-->浏览导入j ...

  7. maven项目引用外部jar包的方法

    问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称\sr ...

  8. Java项目引用外部jar包时,使用bat启动

    1.将项目导出为jar包 1)点击项目—>右击—>点击Export—>进入export页面 2)点击JAR file——>Next——>勾选项目——>选择jar包存 ...

  9. 2017.5.1 使用fat jar插件来打包有引用外部jar包的项目

    如果在程序开发时用到了第三方提供的API.jar包或者其他附属资源.在导出并生成项目的jar文件时,必须将第三方的文件一并导出,否则无法正确运行. 可以使用fat jar插件,下载地址:http:// ...

随机推荐

  1. 【2019年07月22日】A股最便宜的股票

    查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 便宜指数 = PE + PB + 股息 + ROE,四因子等权,数值越大代表越低估. 本策略只是根据最新的数据来选 ...

  2. Qt Quick 常用元素:Textinput 与 TextEdit 文本编辑框

    一.Textinput Textinput 用于编辑一行文本,类似于 QLineEdit. font 分组属性允许你设置 Textlnput 元素所用字体的各种属性,包括字体族(family).大 小 ...

  3. 【RS】Automatic recommendation technology for learning resources with convolutional neural network - 基于卷积神经网络的学习资源自动推荐技术

    [论文标题]Automatic recommendation technology for learning resources with convolutional neural network ( ...

  4. loonflow 工单系统

    该项目是基于django的工作流引擎,工单.项目托管在 Github 一.安装基础环境 1.1 安装python 和 pip yum install -y epel-release yum insta ...

  5. 【MySQL】MariaDB10.3新特性--闪回查询

    MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaD ...

  6. MySQL子查询结果集是否有记录

    Mark SELECT tu.id userId, tu.avatar_url avatarUrl, tu.wx_nick_name wxNickName, tu.city city, (select ...

  7. 如何在Quartus II中查看RTL原理图

    整个工程代码编写并且编译完成之后,标题栏选择Tools→Netlist Viewers→RTL Viewer即可

  8. 通过Maven发部项目的最实用配置

    一.问题 我们平时开发项目,使用Maven或者Idea部署,尽可能是要做到自动化.一般情况下,做成自动化的方式有多种,下面简述我比较常用的3种. 二.解决方案一: (1)配置发部:使用IDEA自带的A ...

  9. Flask模板渲染

    目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...

  10. Js判断flash是否被禁用,如果禁用并开启flash

    <script> function flashChecker() { ; //是否安装了flash ; //flash版本 if(document.all) { var swf = new ...