问题标签 [jcabi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何以编程方式将输入传递给 Java keytool?
我正在尝试解决开源项目jcabi-ssl-maven-plugin中的问题。
问题出现在方法中com.jcabi.ssl.maven.plugin.Keytool#genkey
:
这段代码的目的是
- 启动 Java keytool 程序和
- 在命令行上回答它的问题。
第一步涉及编程调用,例如"C:\Program Files\Java\jdk1.8.0\jre\bin\keytool" -genkeypair -alias localhost -keyalg RSA -keysize 2048 -keypass some-password -storetype jks -noprompt -storepass some-password -keystore C:\Users\DP118M\AppData\Local\Temp\junit4133348108660376680\keystore.jks
.
然后,keytool 会问你几个问题(见下文,翻译自德语):
上面的代码不是手动输入答案(A
上面),而是使用writer.print(...);
语句。
但它们显然不起作用,因为当我运行涉及使用 keytool 的测试(例如com.jcabi.ssl.maven.plugin.CacertsTest#importsCertificatesFromKeystore)时,我收到以下错误:
我假设这个问题的根本原因是writer.print(...);
语句未能将它们的文本传递给 keytool。
我该如何解决这个问题(确保在com.jcabi.ssl.maven.plugin.Keytool#genkey
方法中写入的消息writer.print(...);
正确传递到keytool
)?
更新 1 (28.12.2014 MSK):
我想我找到了原因。我在 Windows 上运行我的测试,所以像这样的调用writer.print("localhost\n");
需要替换为writer.print("localhost" + System.getProperty("line.separator"));
.
这很简单。
但还有另一部分。这段代码的开发人员显然在使用英语版本的 keytool,所以最后它需要一个yes
(参见上面示例输出 keytool 中的最后一个问题)。
因此有声明
但我使用的是德语 Windows 版本,所以在我的情况下,正确的响应不是yes
,而是Ja
。
如果我像这样更改代码,它可以工作(测试不会失败):
我很欣赏有关如何使这部分代码在任何语言的操作系统上工作的提示(如何避免硬编码yes
和Ja
)。
java - 加载 Maven 的 settings.xml 供 Jcabi-Aether 使用
我正在尝试使用 Maven 和 Jcabi-Aether 获取/解决一些工件。我想我已经准备好了大部分代码,但是我很难弄清楚如何加载用户的代码settings.xml
,以便我可以将 Maven 存储库加载到remotes
Aether 使用的变量中:
是否可以加载settings.xml
和获取存储库信息?
java - jcabi 没有登录文件
我正在尝试使用http://www.yegor256.com/2014/05/23/avoid-java-static-logger.html链接中所述的 jcabi-log 进行日志记录。
我有一个runThisAdvise()
从 main 方法调用的方法。Logger.info
“我在这里”中的文本未打印在log1.out
文件中。有人可以帮我解决这个问题吗?
log4j.properties 文件
android - 如何在android中使用jcabi-aspects Loggable注解?
我正在尝试跟踪整个应用程序流程,因此我认为在我的代码中的每个方法上使用 Loggable 注释都可以完成这项工作。
我的问题是我似乎无法理解如何设置表单从头开始 Loggable 选项,包括(以我对它的有限理解):
- 使用 gradle 导入所有依赖项
- 从代码内部或文件配置 log4j 属性
- 使用 PackageInfo 类记录我项目中的所有方法
java - jcabi @RetryOnFailure 无法解析为类型
jcabi@RetryOnFailure
无法解析为类型。
我在 pom.xml 中添加了“编织”和 jcabi 依赖项
但@RetryOnFailure
不被认可。我在这里错过了什么吗?
java - 如何模拟jcabi注解参数
我有一些如下代码。
RETRY_ATTEMPTS和RETRY_DELAY变量的值来自一个单独的常量类,它们是 int 原语。两个变量都定义为public static final。
在编写单元测试用例时如何覆盖这些值。实际值会增加单元测试用例的运行时间。
我已经尝试过两种方法:两者都不起作用
- 将 PowerMock 与 Whitebox.setInternalState() 一起使用。
- 也使用反射。
编辑:
正如@yegor256 所提到的,这是不可能的,我想知道,为什么不可能?当这些注释被加载?
java - 如何解决 AbstractMethodError (jcapi-aspects)?
我正在尝试将 jcabi-aspects 添加到我当前的项目中,因为我想@Loggable
尝试一下注释。
添加后
在我的 pom.xml 文件中,当我尝试构建我的项目时出现以下错误:
我是否必须添加另一个依赖项(因为AbstractMethodError
可能缺少实现)?
java - Resolving custom dependencies in maven plugin programmatically
I have a custom maven plugin. In order to retrieve project's dependencies I use jcabi-aether library. It works fine for getting the project-scope dependencies. But what I need is to resolve plugin-scope dependencies so the call will look like:
Does anybody has any idea? Thank you
java - 使用 jcabi 将参数传递给 XSL 文件
我正在尝试将参数传递给带有jcabi-xml
. 代码很简单,我可以确认它执行:
XSL 文件:
但是,输出为空白。我调用了错误的函数吗?还有什么我应该做的吗?