目前我正在尝试实现OSGI版本范围(针对不同的主题,但我喜欢他们定义版本范围的方式).但是我很难在OSGI中找到版本范围的具体定义.
不幸的是,OSGI API确实包含Version类,但不包含VersionRange类.似乎所有OSGI容器都提出了他们自己对(有些不可能的)版本范围定义的解释.
因此我有几个问题:
versionRange=1.4.0,这会映射到Version> = 1.4.0吗?versionRange=[1.0.0,0]我会说是(版本1.0.0到任何版本),Eclipse实现接受它作为版本但不能正确处理它.
versionRange=[1.0.0,0)?我试图弄清楚如何精细控制 SnakeYaml (本地标签)中的特定功能。
不幸的是,我似乎找不到项目主页或 Snake Yaml 的存储库?
我找到的所有参考文献都指向似乎已被黑客攻击的网站(www dot Snakeyaml dot org - 未将链接放在这里,因为该网站显然已被黑客攻击)或指向私有的 bitbucket 存储库。
那个项目还活着吗?如果没有,是否有人拥有最新版本的原始源代码(我假设它是开源的,但甚至找不到)可以将其发布到公共 github 上,以便工作可以继续进行?
我正在致力于将一个巨大的 PHP 整体(>120 万个 LOC,在超过 30 个国家/地区运行超过 40 个网站)重构为一些更易于管理的 Composer 包,以分离关注点。这些软件包中的每一个都将存在于自己的 GitHub 存储库中,因为其中一些软件包将在所有或仅某些站点之间共享,而其中一些软件包将仅与一个特定站点相关。
一切都工作得很好,除了 PHP Storm 中的 IDE 集成有点糟糕(PHP Storm 将所有内容视为依赖项,并默认将其从自动完成中排除。需要大量的配置工作才能实现自动完成等功能)完成和版本控制集成就可以了)
(改变所描述的结构不是一个选择。这绝对是对我们来说最有意义的解决方案)
你能帮我吗 - 这是一个错误还是我误解了文档?
我的命名空间中有两个文件 - 您将在下面找到一个更简单的版本。
Typescript 文档指出 “尽管这些文件是独立的,但它们每个都可以贡献于同一名称空间,并且可以像它们全部定义在一个文件中一样使用”。因此,我假设一个文件中的类可以访问同一名称空间内的另一个文件,即使它没有导出。(因为如果它们定义在同一个地方就会出现这种情况)
然而,tsc 抱怨它找不到“Dispatcher”这个名字。为什么会出现这种情况?我现在误解了文档吗?或者这只是一个编译器错误?如果是前者,那就太可惜了,因为仅命名空间可见性对于单元测试和封装有很大帮助。
代码:
(为简单起见,更改了代码。如果存在语法错误,则它们是由此引起的):
应用程序.ts:
/// <reference path="Dispatcher.ts"/>
namespace Application {
export class Application {
constructor() {
new Dispatcher();
}
}
}
Run Code Online (Sandbox Code Playgroud)
调度程序.ts:
namespace Application {
class Dispatcher { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud) java ×2
composer-php ×1
namespaces ×1
osgi ×1
php ×1
phpstorm ×1
snakeyaml ×1
typescript ×1
yaml ×1