好的,奇怪的问题.我有与Vagrant一起工作的SSH转发.但是当我使用Ansible作为Vagrant配置器时,我正试图让它工作.
我确切地发现了Ansible正在执行的操作,并且自己从命令行尝试了它,当然,它也在那里失败了.
[/common/picsolve-ansible/u12.04%]ssh -o HostName=127.0.0.1 \
-o User=vagrant -o Port=2222 -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no -o PasswordAuthentication=no \
-o IdentityFile=/Users/bryanhunt/.vagrant.d/insecure_private_key \
-o IdentitiesOnly=yes -o LogLevel=FATAL \
-o ForwardAgent=yes "/bin/sh \
-c 'git clone git@bitbucket.org:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker' "
Permission denied (publickey,password).
Run Code Online (Sandbox Code Playgroud)
但是,当我只运行vagrant ssh时,代理转发工作正常,我可以检查R/W我的github项目.
[/common/picsolve-ansible/u12.04%]vagrant ssh
vagrant@vagrant-ubuntu-precise-64:~$ /bin/sh -c 'git clone git@bitbucket.org:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker'
Cloning into '/home/vagrant/poc_docker'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 18 (delta 4), reused 0 (delta 0)
Receiving objects: 100% (18/18), done.
Resolving deltas: …Run Code Online (Sandbox Code Playgroud) 我想计算Scala类的包名称.
下面的代码有效,但似乎有点冗长
def packagename(cls:ru.ClassSymbol):String = {
def innerPackageName(cls:JavaUniverse#Symbol):List[JavaUniverse#Name] = {
if(cls.owner != null && cls.owner.isPackage ) {
List(cls.name) ::: innerPackageName(cls.owner)
}
else {
List(cls.name)
}
}
val owner: JavaUniverse#Symbol = cls.owner
innerPackageName(owner).filterNot{_.toString == "<root>"}.reverse.mkString(":")
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?