我对EGit如何工作有点困惑.
我在Github上有一个现有的git存储库,想要将它克隆到我的工作区.我的目标是将本地存储库直接存储在我的工作空间文件夹中,但是我没有让它与EGit一起工作.
当我想用EGit克隆github repo时,我必须选择一个目录作为目标.建议的目录位于我的homedir中(不在我的工作区中).当我选择这个目录时,我可以在Eclipse中看到该项目,但它没有存储在我的workspace-folder中.相反,它存储在我的家庭目录中.
当我直接在我的工作区中选择目录时,稍后在导入项目时它会说已经有一个具有此名称的目录.
我不知道如何解决这个问题.我认为这是一种常见的情况.在过去,我使用过hgEclipse(Mercurial),它的工作原理与我认为应该是这样,所以我很困惑,EGit没有.也许我误会了什么.
可能知道这一点很重要:在github存储库中没有来自eclipse的.project或.settings文件.我将它们放在我的.gitignore上,因此在导入对话框中我必须选择"导入为常规项目"而不是"导入现有项目".但我觉得这不重要吗?
我希望有人可以帮助我或解释为什么EGit插件默认情况下不会直接将存储库克隆到工作区.
我的Eclipseversion是3.6,我在标记的地方安装了EGit.
我正在尝试在根服务器上设置 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) 我想验证给定的数组不包含任何值列表。有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将数组作为参数时,看起来您只能向其传递一个有用的值。
我确信这种行为有有效的用例,但我问如何以更简洁的方式通过用例来实现。基本上,我希望一旦数组包含第二个数组的一个或多个值,测试就会失败。有点像“黑名单”。
在Angular 2中是否可以根据查询参数定义路由?我想要有以下行为:
如果用户输入了http:<server-path>/search我想要路由到StartPage组件的URL .
如果用户输入http:<server-path>/search?query=sometext我想要路由到ResultList组件的URL .
我知道可以使用路径参数进行路由,但这不是我喜欢做的.我想尽可能使用查询参数.我知道如何使用查询参数触发角度导航,但我不知道如何配置路由.
我非常喜欢 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 …
我正在学习 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) 我喜欢使用 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 组件标准的作者没有考虑到这一点,所以这里肯定有一些我忽略的东西。
我正在尝试使用 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 映像部署到远程服务器?
我知道如何在 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)
所以问题是:上面的类型定义实际上意味着什么?是否可以创建一个与此签名匹配的对象?