我尝试在每个循环中使用嵌套嵌套,它表示跳转目标不能越过函数边界.请告诉我如何在类型脚本中满足某些条件时,为每个循环打破嵌套.
groups =[object-A,object-B,object-C]
groups.forEach(function (group) {
// names also an array
group.names.forEach(function (name) {
if (name == 'SAM'){
break; //can not use break here it says jump target cannot cross function boundary
}
}
}
Run Code Online (Sandbox Code Playgroud) 我使用Apache Mina Sshd API在java中启动本地SFTP服务器.在SFTP客户端我使用Jcraft jsch API创建我的SFTP 客户端.我成功启动了服务器.问题是我想写一些单元测试用例到检查客户端是否可以将某些文件放入服务器的根目录.目前我的SFTP服务器没有任何根目录.所以我想知道是否有任何方法来设置服务器的根目录.
例如:C:\ sftp 如何将此路径设置为我的服务器根目录.然后,客户端每次与服务器连接时都可以读取和写入文件.谢谢.
public class SftpServerStarter {
private SshServer sshd;
private final static Logger logger = LoggerFactory.getLogger(SftpServerStarter.class);
public void start(){
sshd = SshServer.setUpDefaultServer();
sshd.setPort(22);
sshd.setHost("localhost");
sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
sshd.setPublickeyAuthenticator(new MyPublickeyAuthenticator());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>>asList(new SftpSubsystem.Factory()));
sshd.setCommandFactory(new ScpCommandFactory());
try {
logger.info("Starting ...");
sshd.start();
logger.info("Started");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
logger.info("Can not Start Server");
}
}
}Run Code Online (Sandbox Code Playgroud)
我正在使用Atlassian Stash(Bitbucket服务器)来管理我的git存储库.最近我要求使用Stash REST API将文件(新创建的.xml文件)提交到我的Git存储库.我已经阅读了文档,但似乎REST API不支持该功能.
我是否正确,或者这可能以某种方式?
我有一个.Jar文件,其中包含在TestNG test上运行所需的文件.我想在该Jar文件中运行一个特定的xml文件.我的要求是可以执行指向.Jar文件的TestNG测试,如果是这样的话我怎样才能做到这一点.
我已经在 Git 中安装了Meld作为差异工具。是否可以使用 Git 或任何其他方式比较两个文件夹?我尝试了以下命令,但没有任何反应。
git diff /c/sample/folder1/ /c/sample/folder2/
Run Code Online (Sandbox Code Playgroud) 我已经实现了一些 perl 脚本,在某些情况下,我必须将一些命令行参数传递到我的程序中。可用性角度我决定将一些添加bash completion script到我的项目中。 .请让我知道我可以把我的bash completion script
自定义 Perl 脚本位置
C:\scripts\tool\bin\ktools.pl
还要添加bin系统变量的路径。
我已经把我的自动完成脚本放在
C:\scripts\tool\bin\etc\bash_completion.d\ktools\foo
Bash 完成脚本
_foo()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="--help --verbose --version"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _foo ktools
Run Code Online (Sandbox Code Playgroud)
当用户输入ktools -- + press tab命令行或 git bash时,应自动建议命令。
我正在尝试使用maven-shade-plugin生成 Uber Jar ,并且我想从阴影 jar 中排除一些资源并包含一些指定的工件。但是以下排除资源与其捆绑在一起。
<dependencies>
<dependency>
<groupId>com.sample.auto</groupId>
<artifactId>sample</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.sample.manual</groupId>
<artifactId>sample-manual</artifactId>
<version>1.5.0</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>Distribute</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/LICENSE</exclude>
<exclude>LICENSE</exclude>
<exclude>com/myproject/auto/**</exclude>
<exclude>org/**</exclude>
<exclude>/*.png</exclude>
<exclude>/*.html</exclude>
<exclude>/*.jpeg</exclude>
<exclude>com/google/common/**</exclude>
</excludes>
</filter>
</filters>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
另外,我只需要将com.sample.auto相关工件包含到我的 uber jar 中。请让我知道我在哪里犯了错误。
目前我正在研究SFTP协议.我使用Apache Mina Sshd库创建了SFTP客户端使用Jsch库和SFTP服务器.我已经建立了它们之间的连接,并且可以成功地将文件发送到SFTP服务器.现在我正在创建一个SFTP服务器处理传入文件的辅助文件处理程序.举个例子,假设SFTP服务器可以从SFTP客户端接收文件,但是当前在我的实现中,当文件到达服务器时没有办法通知.我只是去服务器根文件夹,看看是否有是一个可用的文件.这就是我知道文件是否到达的方式.
我想实现当文件到达服务器时它将通知用户文件到达和文件内容.(文件名和其他详细信息).但问题是我是Apache Mina的新手sshd API.i已经通过文档但我无法弄明白.
请问我是否知道如果在Apache Mina Sshd服务器中有任何已经实现的侦听器来处理传入文件,或者如果没有,我如何为传入文件实现我自己的侦听器.
SFTP服务器代码
public class SftpServerStarter {
private SshServer sshd;
private final static Logger logger = LoggerFactory.getLogger(SftpServerStarter.class);
public void start(){
sshd = SshServer.setUpDefaultServer();
sshd.setPort(22);
sshd.setHost("localhost");
sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
sshd.setPublickeyAuthenticator(new MyPublickeyAuthenticator());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>>asList(new SftpSubsystem.Factory()));
sshd.setCommandFactory(new ScpCommandFactory());
sshd.setFileSystemFactory(new VirtualFileSystemFactory("C:/root"));
try {
logger.info("Starting ...");
sshd.start();
logger.info("Started");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
logger.info("Can not Start Server");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我已经实现了REST服务,用于将多个文件上传到服务器中.但问题是,如果我FormDataMultiPart在REST服务中使用,我无法获取文件详细信息.我可以获取文件内容.我明智地试图获取文件详细信息,如下所示给了我一个错误说不支持.
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void upload(FormDataMultiPart formParams)
{
Map<String, List<FormDataBodyPart>> fieldsByName = formParams.getFields();
//Assume i am sending only files with the request
for (List<FormDataBodyPart> fields : fieldsByName.values())
{
for (FormDataBodyPart field : fields)
{
InputStream is = field.getEntityAs(InputStream.class);
String fileName = field.getName();
field.getMediaType();
//Those work perfectly
//This gave me an error
FormDataContentDisposition f=field.getEntityAs(FormDataContentDisposition .class);
System.out.println(f.getFileName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
type,name,size如果使用,请告诉我如何获取每个上传文件的文件详细信息FormDataMultiPart.
我有两个Perl脚本以及GIT钩子脚本.在那里我正在验证GIT工作流程.这是调用堆栈的脚本.
pre-push - > unpush-changes - > dependency-tree
unpush-changes perl脚本中有一个for循环,它将调用dependency-tree perl脚本.
前推
system("unpushed-changes");
my $errorMsg = $ENV{'GIT_FLOW_ERROR_MSG'}// '';
if($errorMsg eq "true"){
print "Error occured!";
}
Run Code Online (Sandbox Code Playgroud)
unpush-changes.pl
for my $i (0 .. $#uniqueEffectedProjectsList) {
my $errorMsg = $ENV{'GIT_FLOW_ERROR_MSG'}// '';
if($errorMsg ne "true"){
my $r=system("dependency-tree $uniqueEffectedProjectsList[$i]");
}else{
exit 1;
}
}
Run Code Online (Sandbox Code Playgroud)
dependency-tree.pl
if(system("mvn clean compile -DskipTests")==0){
print "successfully build";
return 1;
}else{
$ENV{'GIT_FLOW_ERROR_MSG'} = 'true';
print "Error occured";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的依赖树脚本中,如果发生错误,我已经设置了ENV变量,并且将在unpush-changes脚本中的每次迭代中进行检查.但是它的ENV值为空而不是true.我也尝试返回一些值,如果失败并尝试验证它,但似乎它也没有工作.所以我的要求是我如何在所有脚本之间共享一个全局变量.如果有更好的方法,请告诉我.