小编Man*_*uky的帖子

Eclipse + EGit:将项目克隆到工作区

我对EGit如何工作有点困惑.

我在Github上有一个现有的git存储库,想要将它克隆到我的工作区.我的目标是将本地存储库直接存储在我的工作空间文件夹中,但是我没有让它与EGit一起工作.

当我想用EGit克隆github repo时,我必须选择一个目录作为目标.建议的目录位于我的homedir中(不在我的工作区中).当我选择这个目录时,我可以在Eclipse中看到该项目,但它没有存储在我的workspace-folder中.相反,它存储在我的家庭目录中.

当我直接在我的工作区中选择目录时,稍后在导入项目时它会说已经有一个具有此名称的目录.

我不知道如何解决这个问题.我认为这是一种常见的情况.在过去,我使用过hgEclipse(Mercurial),它的工作原理与我认为应该是这样,所以我很困惑,EGit没有.也许我误会了什么.

可能知道这一点很重要:在github存储库中没有来自eclipse的.project或.settings文件.我将它们放在我的.gitignore上,因此在导入对话框中我必须选择"导入为常规项目"而不是"导入现有项目".但我觉得这不重要吗?

我希望有人可以帮助我或解释为什么EGit插件默认情况下不会直接将存储库克隆到工作区.

我的Eclipseversion是3.6,我在标记的地方安装了EGit.

eclipse git github egit

64
推荐指数
1
解决办法
6万
查看次数

无法访问 Keycloak 管理控制台

我正在尝试在根服务器上设置 Keycloak,但无法从 Internet 访问管理控制台。我已经安装了 keycloak 服务器并将它放在同一台机器上的 nginx 反向代理后面。我已经为域设置了一个 Letencrypt 证书。我还通过脚本为 keycloak 设置了管理员用户。

当我使用它的域访问服务器时,https://<my-domain>我被转发到https://<my-domain>/auth并且有一个带有“管理控制台”链接的 keycloak 欢迎页面。此链接指向https://<my-domain>/admin但显示 404。

起初我认为这可能是 nginx 的问题,所以我按照文档中的指南设置负载平衡器(https://www.keycloak.org/docs/latest/server_installation/index.html#_setting-up-负载平衡器或代理)。在那里,在“验证配置”下,它告诉您打开https://<my-domain>/auth/realms/master/.well-known/openid-configuration按预期工作的路径,然后我得到一个包含多个链接和其他信息的 json 文件。但是,这些链接都不起作用 - 都给了我 404。

当我尝试时,https://<my-domain>/auth/realms/master我得到一个 JSON 响应。所以有些链接确实有效,所以我认为这不是 nginx 的问题,而是 keycloak 本身的问题。

所以基本问题是:如何配置 Keycloak 以便我可以通过互联网访问管理控制台?我读过默认情况下您只能在本地主机上访问它,但必须有一种方法可以覆盖此默认值?

相关的 nginx 配置:

upstream keycloak {
    server 127.0.0.1:8080;
}

server {
    listen 443 ssl http2;
    # some ssl configuration for letsencrypt

    location / {
        proxy_pass          http://keycloak;
        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For …
Run Code Online (Sandbox Code Playgroud)

nginx keycloak

16
推荐指数
3
解决办法
1万
查看次数

开玩笑:测试数组是否不包含这些值?

我想验证给定的数组不包含任何值列表。有expect.arrayContaining,但我不明白它应该如何用于此目的。

看这个例子:

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3"])
Run Code Online (Sandbox Code Playgroud)

该测试失败,这是预期的行为。我想验证“3”是否不包含在数组中。一切都很好。

但是,现在我有多个值,如果数组包含其中任何一个值,我希望测试失败。

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3", "4"])
Run Code Online (Sandbox Code Playgroud)

尽管我预计该测试会失败,但该测试不会失败,因为该数组包含“3”。

我能做的是:

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3"])
expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["4"])
...
Run Code Online (Sandbox Code Playgroud)

但必须为每个值重复整个期望行似乎不是正确的方法。特别是当arrayContaining将数组作为参数时,看起来您只能向其传递一个有用的值。

我确信这种行为有有效的用例,但我问如何以更简洁的方式通过用例来实现。基本上,我希望一旦数组包含第二个数组的一个或多个值,测试就会失败。有点像“黑名单”。

javascript arrays assertion jestjs

11
推荐指数
2
解决办法
3万
查看次数

基于查询参数的Angular 2路由

在Angular 2中是否可以根据查询参数定义路由?我想要有以下行为:

如果用户输入了http:<server-path>/search我想要路由到StartPage组件的URL .

如果用户输入http:<server-path>/search?query=sometext我想要路由到ResultList组件的URL .

我知道可以使用路径参数进行路由,但这不是我喜欢做的.我想尽可能使用查询参数.我知道如何使用查询参数触发角度导航,但我不知道如何配置路由.

routing angular

7
推荐指数
1
解决办法
9981
查看次数

CDI 构造函数注入不适用于瞬态不可序列化依赖项

我非常喜欢 CDI 的构造函数注入,但现在我发现了一个用例,其中构造函数注入显然无法按预期工作。

在我的示例中,我有两个类。类“BeanA”没有明确定义的范围,也没有实现可序列化。类“BeanB”使用@SessionScoped 进行注释并且确实实现了可序列化。

public class BeanA{
}

@SessionScoped
public class BeanB implements Serializable{
    @Inject
    private BeanA beanA;
}
Run Code Online (Sandbox Code Playgroud)

When I try to inject an instance of BeanA into BeanB of cource I get an UnserializableDependencyException from Weld because BeanA isn't serializable. This is the expected behaviour.

When I mark the field "beanA" with "transient" the injection works without problems:

@Inject
private transient BeanA beanA;
Run Code Online (Sandbox Code Playgroud)

Now Weld doesn't throw any exceptions.

This is perfectly fine for me but my …

java serializable transient constructor-injection cdi

5
推荐指数
1
解决办法
2411
查看次数

如何在 Kotlin 中使用泛型定义功能接口?

我正在学习 Kotlin,但在函数方面遇到了一些麻烦。我正在尝试创建类似具有通用参数的功能接口的东西。在 Java 中,我会创建这样的东西:

@FunctionalInterface
public interface Foo<T extends Bar> {
    String something(T arg);
}
Run Code Online (Sandbox Code Playgroud)

然后我可以像这样在其他地方使用它(鉴于Person扩展Bar


Foo<Person> f = p -> p.toString();

Run Code Online (Sandbox Code Playgroud)

你如何用 Kotlin 写这个?

我尝试的第一件事是使用这样的类型别名:

typealias Foo<T> = (T) -> String
Run Code Online (Sandbox Code Playgroud)

但是,当我将绑定添加到类型参数时,它停止工作:

typealias Foo<T: Bar> = (T) -> String  // Error: Bounds are not allowed on type alias parameters
Run Code Online (Sandbox Code Playgroud)

第二种方法是编写一个扩展函数类型的接口:

interface Foo<T: Bar> : (T) -> String
Run Code Online (Sandbox Code Playgroud)

但是,现在我不知道如何使用 this 实例化 lambda 函数。当我像这样从它创建类时它起作用:

class Something: Foo<Person> {
    override fun invoke(p: Person): String {
        return p.toString()
    } …
Run Code Online (Sandbox Code Playgroud)

kotlin

5
推荐指数
1
解决办法
667
查看次数

如何通过 DOM 操作动态创建模板元素

我喜欢使用 JavaScript DOM 操作动态创建 HTML 模板元素。像这样的东西:

const template = document.createElement("template")

const div = document.createElement("div")

template.append(div)
Run Code Online (Sandbox Code Playgroud)

但是,使用appenddiv 容器时,templates 属性中将不可用content。相反,你必须innerHTML像这样使用:

const template = document.createElement("template")

template.innerHTML = "<div></div>"
Run Code Online (Sandbox Code Playgroud)

这确实有效,因为innerHTML为模板标签实现了特殊行为(请参阅https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML#Operational_details)。

然而,innerHTML它也有一些缺点,所以问题是:如何将模板标签与使用 创建的内容一起使用document.createElement

这里的一方面是一些 JavaScript 框架(即 Angular 和 React)确实document.createElement在内部使用来创建 DOM 树。这使得在这些框架中使用模板标签几乎是不可能的。

作为使用模板标签的 Web 组件的作者,我想支持框架用户,但目前我看不到任何方法可以做到这一点,并且我开始考虑完全删除模板标签。另一方面,我无法想象使用innerHTML是这里唯一的方法,并且 Web 组件标准的作者没有考虑到这一点,所以这里肯定有一些我忽略的东西。

html javascript dom web-component

4
推荐指数
1
解决办法
7268
查看次数

在没有 docker 注册表的情况下使用 ansible-container 部署 docker 镜像

我正在尝试使用 ansible-container 创建和部署我的 docker 应用程序,但我无法让它工作。

我有一个远程服务器,我可以通过 ansible 进行配置。在我的本地机器上,我使用 ansible-container 来构建一个运行良好的 docker 镜像。运行后ansible-container build,我的本地机器上有 docker 映像。但是,我没有下一步工作。我的目标是将 docker 镜像从我的本地机器推送到远程服务器,然后在远程服务器上基于这个镜像创建并启动一个 docker 容器。

我没有使用 docker 注册表。因此,我正在使用命令--local-images选项,ansible-container deploy以防止它将图像推送到注册表(至少这是我从文档中了解到的)。这个命令成功创建了一个 ansible playbook,但是当我执行这个 playbook 时,它仍然尝试从 docker.io 注册表中提取图像,当然在那里找不到它。

我认为缺少的步骤是将本地 docker 映像推送到远程服务器,但我在 ansible-container 文档中找不到此用例的任何提示。我还查看了ansible docker_image 模块,但据我所知,这也以使用注册表为中心。

如何使用 ansible 将 docker 映像部署到远程服务器?

ansible docker ansible-container

3
推荐指数
1
解决办法
1080
查看次数

打字稿类型的匿名函数签名。这是什么意思?

我知道如何在 TypeScript 中定义一个需要如下命名函数的类型:

type Foo = {
    bar(a: string): number
}

// or

type Foo = {
    bar: (a:string) => number
}
Run Code Online (Sandbox Code Playgroud)

然而,使用第一种方法,也可以定义一个没有名称的函数,如下所示:

type Foo = {
    (a: string): number
}
Run Code Online (Sandbox Code Playgroud)

TypeScript 编译器不会在这里抱怨,但我不知道如何创建与此类型签名匹配的对象?尝试这样的事情不会编译:

let f: Foo = {
  (a: string) => 2
}
Run Code Online (Sandbox Code Playgroud)

所以问题是:上面的类型定义实际上意味着什么?是否可以创建一个与此签名匹配的对象?

typescript

3
推荐指数
1
解决办法
1329
查看次数