我有以下代码:
JSch jsch = new JSch();
jsch.setKnownHosts(dotSshDir + "/known_hosts");
jsch.addIdentity(dotSshDir + "/id_rsa");
Session session = jsch.getSession(userName, hostname, 22);
session.connect();
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand(command);
channel.setInputStream(null);
channel.setErrStream(System.err);
Reader reader = new InputStreamReader(channel.getInputStream());
char[] buf = new char[1024];
int numRead;
while ((numRead = reader.read(buf)) != -1) {
String readData = String.valueOf(buf, 0, numRead);
result.append(readData);
buf = new char[1024];
}
Run Code Online (Sandbox Code Playgroud)
它试图从读者那里读取.我该如何解决?我该怎么做才能找到正在发生的事情?
我有以下代码:
class Sleeper {
public void sleep(long duration) {
try {
Thread.sleep(duration);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用JMockit测试如果Thread.sleep()抛出InterruptedException,则调用Thread.currentThread()。interrupt()吗?
我正在使用Python 2.7并具有以下文件:
./__init__.py
./aoeu.py
Run Code Online (Sandbox Code Playgroud)
__init__.py 具有以下内容:
aoeu aoeuaoeu aoeuaoeuaoeu
Run Code Online (Sandbox Code Playgroud)
所以我希望在Python尝试加载时运行aoeu.py会出错__init__.py,但事实并非如此.PYTHONPATH是否设置为'.'的行为是相同的.或者未设置.
这是怎么回事?
我正在寻找模仿SQS的REST API的东西,可用于强大/非片状,小型,逻辑/单元测试.
我们正试图将我们非常庞大的代码库从Guava 11迁移到Guava 14,并希望捕获已删除或已弃用的API的使用.FindBugs可以执行此类检查吗?如果是这样,怎么样?
我正在尝试使用Java API执行以下查询:
"query": {
"bool" : {
"must" : [ {
"field" : {
"space-time-id.timestamp" : "2014-03-17T16:57:47.136-07:00"
}
} ]
}
}
Run Code Online (Sandbox Code Playgroud)
这可能因为值有冒号(特殊字符)而失败.有人能指出我逃脱这些角色的Java API吗?
我有以下几点:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
}
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我希望它将“签出到特定的本地分支”设置为“主”。这是怎么做的?
我在https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java中没有找到任何指向任何可以使用的东西,但我可能错过了什么。
我定义了以下Sonar Ant目标:
<target name='sonar'>
<property name='sonar.sources' value='${src.dir}'/>
<property name='sonar.tests' value='${test.src.dir}'/>
<property name='sonar.binaries' value='build/classes'/>
<path id='jars'>
<fileset dir='${env.JAVA_HOME}/jre/lib' includes='*.jar'/>
<fileset dir='build/lib/test' includes='*.jar'/>
</path>
<pathconvert property='sonar.libraries' refid='jars' pathsep=','/>
<exec executable='p4' outputproperty='p4.P4CLIENT'>
<arg value='set'/>
<arg value='P4CLIENT'/>
</exec>
<propertyregex
property='p4client'
input='${p4.P4CLIENT}'
regexp='P4CLIENT=([^ ]+) *.*'
replace='\1'/>
<propertyregex
property='sonar.timestamp'
input='${build.time}'
regexp='_'
replace='T'/>
<sonar:sonar key='com.netflix:${module.name}' version='${p4client}@${sonar.timestamp}' xmlns:sonar='antlib:org.sonar.ant'/>
<property name='sonar.dynamicAnalysis' value='reuseReports'/>
<property name='sonar.emma.reportPath' value='${coverage.dir}'/>
</target>
Run Code Online (Sandbox Code Playgroud)
当我运行'ant sonar'并在我的浏览器中调出Sonar时,我会看到有关src目录中的类的信息,但是没有关于测试目录中的内容的信息.
如果我将$ {test.src.dir}添加到sonar.sources而不设置sonar.tests,我会看到有关测试类的一些信息,但Sonar仍会报告0测试成功.
我如何获得它以便我可以深入了解每种测试方法及其统计数据?
我对 git 相当陌生,对 Phabricator 甚至更陌生,我试图在项目早期建立一个干净的工作流程。据我了解,使用 git 的正确做法是为每个功能创建一个新分支,在分支中实现它,然后将分支合并到 master 中。效果很好,没问题。
输入 Phabricator 并进行预推送代码审查。我创建一个分支,我们称之为“B”,实现一些东西,运行“arc diff”将其进入 Phabricator 的差异审查系统,等待批准,最后运行“arc land”推送到主存储库。到目前为止,一切都很好。但是,我不想在等待审稿人回复我的同时暂停进一步的开发。
因此,我正在审查我的提交,并且我想开始研究细化或依赖功能。我创建了一个分支,我们称之为“SB”,然后开始工作。我让 SB 准备好送审,但 B 尚未获得批准。“arc diff”看起来会将现有提交与我的新更改结合起来,这是我不想要的 - 这是一个新更改,而不是对旧更改的更新。我尝试“arc diff B”,它起作用了,我在 Differential 中得到了新的修订版,其中仅包含新的更改。B获得批准,我在B上运行“arc land”来提交。这有效。
SB获得批准,我在SB上运行“arc land”来提交。我收到一个使用异常 - Arcanist 将两个修订版视为在 SB 中而不是在 master 中。我尝试切换到 master 并运行更新,然后重试。同样的错误。我尝试使用 --revision 标志来实现这两个更改(即使其中之一确实已经实现)。我遇到合并冲突。我解决并提交合并冲突,然后重试。我再次遇到完全相同的合并冲突。
我最终想到了在 SB 上尝试 rebase 的想法,这最终让“arc land”正常工作。所以,我有一个技术上可行的解决方案,但这对我来说似乎很笨拙和尴尬。有没有更好的方法来避免手动变基的需要,只是为了让 Arcanist 认识到不,我已经着陆的修订版不是我现在着陆的一部分?
我们开始使用 gRPC,目前正在用作bazel我们的构建工具。工程师更新原型定义后,他们需要进行原型编译。由于我们存储库的结构,原始编译目标将分散在存储库中。
我看到的唯一选择是使用目标命名约定,因此工程师只需要执行类似bazel build //...:compile-proto. 是否有其他方法可以让工程师轻松地对所有更新的原型定义进行原型编译?