我使用Javaslang-2.1.0-alpha和它的Javaslang-match相当于进行一些对象分解.根据丹尼尔在"匹配奇特的方式"部分的博客文章:
Match(person).of( Case(Person("Carl", Address($(), $())), (street, number) -> ...) )
Run Code Online (Sandbox Code Playgroud)
如果检索匹配两个通配符模式中值Address成street和number,但例子甚至不编译.我后来意识到所有物体都必须包裹在原子模式中,即"卡尔"变成$("卡尔").这是在阅读了这个问题之后.
我按照更新的教程,但没有更新此示例.
我将示例更新为:
Person person = new Person("Carl", new Address("Milkyway", 42));
String result2 = Match(person).of(
Case(Person($("Carl"), Address($(),$())),
(street, number) -> "Carl lives in " + street + " " + number),
Case($(), () -> "not found")
);
System.out.println(result2);
Run Code Online (Sandbox Code Playgroud)
从控制台输出判断,它编译但我的值没有正确匹配:
Carl lives in Carl Address [street=Milkyway, number=42]
Run Code Online (Sandbox Code Playgroud)
很明显,street包含卡尔和number整个Address物体.
当我尝试添加第三个lambda参数来捕获Carl时: …
我在 maven 上托管了一个工件。我在本地 Windows 机器上的设置一直运行良好;maven, gpg keys命名。到目前为止,我可以做到,'mvn clean deploy'并且我的工件非常成功地签名和发布。
进入与托管在 ubuntu 服务器上的 jenkins 的持续集成。我通过 putty 在 ubuntu 上成功安装了 gpg。由于我已经在 maven 上使用了我的 gpg 密钥签名的工件版本,我应该继续使用它们,对吗?
因此,我使用 winscp 将 gnupg 文件夹及其所有内容传输到 ubuntu。确实,我运行的时候gpg --list-keys可以看到我的密钥信息(我只配置了一个密钥)。我在想,这是我在 ubuntu 上配置成功的标志。
根据对这个问题的回答
我应该认为在 ubuntu 上没有配置密钥。那为什么会gpg --list-keys起作用??
当 jenkins 尝试部署工件时," sign" 目标失败并maven-gpg-plugin报告:
gpg: no default secret key: secret key not available
gpg: signing failed: secret key not available
Run Code Online (Sandbox Code Playgroud)
并且构建失败,我该如何解决这个问题?