目前在v2中,如果CorDapp引用模块X,模块X具有对模块Y的传递依赖性,使得Corda使用Y,则如果Corda和X的Y的相应版本不同,则可能发生潜在的版本冲突.一个例子是重用现有的内部库,包含依赖的业务和序列化逻辑Jackson.
在这种情况下,生成的CorDapp打包和Corda运行时似乎强制执行与Corda相关的Y版本.
如果Y的版本充分不同,我们可以得到X破坏的场景,因为Y不支持某些类型和方法.
是否有一般的方法可以使用gradle配置(或其他一些机制)来限制Y的正确版本以供X使用,而不会影响Corda运行时?
我想静态地为一个项目提供服务,该项目使用 webcomponents(使用 lit-html),没有任何打包工具,如 webpack 等。
示例项目由以下结构组成:
index.html
app.js
package.json
Run Code Online (Sandbox Code Playgroud)
package.json:
{
"name": "lit",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@webcomponents/webcomponentsjs": "^2.2.7",
"lit-element": "^2.0.1"
}
}
Run Code Online (Sandbox Code Playgroud)
app.js:
import { LitElement, html } from 'lit-element';
class FooElement extends LitElement {
render() {
return html`<div>hello world!</div>`;
}
}
window.customElements.define('x-foo', FooElement);
Run Code Online (Sandbox Code Playgroud)
最后,index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title> …Run Code Online (Sandbox Code Playgroud)