我正在使用Eclipse和Maven并使用Maven jetty插件运行我的应用程序.
我发现Maven每次执行jetty时都坚持要重新编译我的文件,这有点令人恼火:run.它是次优的,因为文件已经由Eclipse编译(我正在编写具有(相对)慢编译器的Scala).
我正在使用配置文件,并运行mvn jetty:在我的'development'配置文件下运行.
我想做的是:
配置jetty插件,以便在开发配置文件下运行时跳过编译阶段.
我查看了maven生命周期文档,但没有找到有关'skip.compile'标志或配置参数的任何信息.
我也尝试过配置Maven这样做是徒劳的假设,它会在maven-jetty-plugin启动时停止重新编译.
我错了,它没用.但我所想的是,也许Scala编译器就是问题所在.也许它忽略了编译的东西.
开发maven-compiler-plugin default-testCompile test-compile default-compile compile 1.6 1.6 false org.mortbay.jetty jetty-maven-plugin 7.2.2.v20101205 true development
更新:
我将尝试专门禁用scala编译
首先,我试图让织物工作,但它一直在问我密码.
所以我试图减少这个问题.也许从Python创建SSH连接是一个很好的POC.我发现Fabric使用parmiko进行SSH处理.嗯.好吧,让我们尝试一个工作的例子.
这是我写的.
from ssh import *
import os
print "SSH-AGENT VARS"
print "SSH_AGENT_PID: %s " % os.environ['SSH_AGENT_PID']
print "SSH_AUTH_SOCK: %s " % os.environ['SSH_AUTH_SOCK']
a = Agent()
keys=a.get_keys()
print keys.count("192.168.1.10")
client = SSHClient()
client.load_system_host_keys()
client.connect('192.168.1.10')
Run Code Online (Sandbox Code Playgroud)
导致以下错误消息:
% ./ssh_test.py
SSH-AGENT VARS
SSH_AGENT_PID: 26557
SSH_AUTH_SOCK: /tmp/ssh-pZHBElj26556/agent.26556
0
Traceback (most recent call last):
File "./ssh_test.py", line 18, in <module>
client.connect('192.168.1.10')
File "/usr/local/lib/python2.7/dist-packages/ssh/client.py", line 332, in connect
self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
File "/usr/local/lib/python2.7/dist-packages/ssh/client.py", line 493, in _auth
raise saved_exception
ssh.PasswordRequiredException: Private key …Run Code Online (Sandbox Code Playgroud) AKA"将从Parser.parseAction的结果构造的子节点添加到父解析树"
我正在尝试使用PyParsing(规则恕我直言)解析PHP文件,其中函数定义已使用JavaDoc样式注释进行注释.原因是我想以一种可用于生成客户端存根代码的方式存储类型信息.
例如:
/*
* @vo{$user=UserAccount}
*/
public function blah($user){ ......
Run Code Online (Sandbox Code Playgroud)
现在,我已经能够编写一个解析器,使用PyParser非常容易.但是,PyParser带有一个内置的javaStyleComment Token,我想重用它.所以我解析了代码,然后尝试附加一个parseAction,它将剥离gunk并运行一个子解析器(抱歉,不确定术语)并将结果附加到父解析树.
我无法弄清楚该怎么做.代码附在下面.顺便说一句,我可以轻松编写自己的javaStyleComment,但我想知道一般是否可以链接解析结果?
再次,抱歉,如果我的问题不简洁,我只是这个东西的新手.
#@PydevCodeAnalysisIgnore
from pyparsing import delimitedList,Literal,Keyword,Regex,ZeroOrMore,Suppress,Optional,QuotedString,Word,hexnums,alphas,\
dblQuotedString,FollowedBy, sglQuotedString,oneOf,Group
import pyparsing
digits = "0123456789"
colon = Literal(':')
semi = Literal(';')
period = Literal('.')
comma = Literal(',')
lparen = Literal('{')
rparen = Literal('}')
lbracket = Literal('(')
rbracket = Literal(')')
number = Word(digits)
hexint = Word(hexnums,exact=2)
text = Word(alphas)
php = Literal("<?php") + Literal("echo") + Literal("?>")
print php.parseString("""<?php echo ?>""")
funcPerm = oneOf("public private protected")
print funcPerm.parseString("""public""")
print funcPerm.parseString("""private""") …Run Code Online (Sandbox Code Playgroud) 我正在使用asynchttpclient.构建参数时,将java.util.Map传递给setParameters方法.
(Java)签名如下所示:
setParameters(Map<String,Collection<String>);
Run Code Online (Sandbox Code Playgroud)
真实的一天1.但哇,我正试图从Scala中调用它,我不能为我的生活创建一个与该签名相匹配的集合.
这是我到目前为止创造的混乱.
var m:java.util.Map[java.lang.String,java.util.Collection[java.lang.String]] = new java.util.HashMap[java.lang.String,java.util.HashSet[java.lang.String]]()
val req = new RequestBuilder().setUrl("http://localhost:1234/").setParameters(m).build
Run Code Online (Sandbox Code Playgroud)
这是错误信息,
Run Code Online (Sandbox Code Playgroud)Multiple markers at this line - type mismatch; found : java.util.HashMap[java.lang.String,java.util.HashSet[java.lang.String]] required: java.util.Map[java.lang.String,java.util.Collection[java.lang.String]] Note: java.util.HashSet[java.lang.String] <: java.util.Collection[java.lang.String], but Java-defined **trait Map is invariant in type V. You may wish to investigate a wildcard type such as `_ <: java.util.Collection[java.lang.String]`. (SLS 3.2.10)** - type mismatch; found :
很公平,我不会想到我做了一些特别复杂的事情,但是让我们试试编译器的建议......
所以我将其更改为以下内容
var m:java.util.Map[java.lang.String,_ <: java.util.Collection[java.lang.String]] = new java.util.HashMap[java.lang.String,java.util.HashSet[java.lang.String]]()
val req = new RequestBuilder().setUrl("http://localhost:1234/").setParameters(m).build
Run Code Online (Sandbox Code Playgroud)
并收到以下可爱的错误消息作为回应.
Run Code Online (Sandbox Code Playgroud)Multiple markers at …
我已经创建了一个specs测试,以验证一些JSON解析.虽然测试效果很好,但感觉相当嘈杂.
我想知道规格中是否有现成的代码来取消选择和选择?
"twitter json to Scala class mapper" should {
"parsing a tweet" in {
TwitterJsonMapper.tweetP(tweetS) match {
case Right(t: Tweet) => {
implicit def unOption[T](t: Option[T]): T = t.get
implicit def unEither[T](t: Either[T,Throwable]): T = t match {case Left(left) => left ;case Right(t) => throw t}
"test id" in {
true must_== (t.id.get == 228106060337135617l)
}
"test id_str" in {
true must_== (t.id_str.get == "228106060337135617")
}
"test time" in {
true must_== (t.created_at.getHours == 13 )
}
}
case …Run Code Online (Sandbox Code Playgroud) 我有这段代码,我只是在没有必要进行任何错误处理的测试用例中使用它.它的作用是:
代码如下:
def parseDs(ins: List[String]) = {
def filterResults[U, T](in: List[Either[U, T]]): List[T] = {
in.filter(y => y.isRight).map(z => z.right.get)
}
filterResults(ins.map(x => DSJsonMapper.parseDSResult(x)))
}
Run Code Online (Sandbox Code Playgroud)
现在,我还没有做过很多多态函数,但这很有效.不过我觉得它有点难看.有没有人有更好的建议,如何完成同样的事情.
我知道这将归结为个人偏好的情况.但欢迎提出建议.
似乎嵌套匹配不起作用,这是一个奇怪的限制.
行为的一个例子如下:
Some(Some(1),2) match {
| case Some(Some(a),b) => a
| case e => e
| }
<console>:9: error: wrong number of arguments for <none>: (x: (Some[Int], Int))Some[(Some[Int], Int)]
case Some(Some(a),b) => a
^
<console>:9: error: not found: value a
case Some(Some(a),b) => a
^
Run Code Online (Sandbox Code Playgroud)
这有效:
Some(Some(1),2) match {
case Some(a) => a match {
case (Some(a),b) => "yay"
case e => "nay"
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我只是一个蠢货还是有更好的方法来实现这一目标?
我看不出以下两行之间的显着差异.
然而,第一次解析,后者则没有.
In [5]: n=""" \\"Axis of Awesome\\" """
In [6]: n="""\\"Axis of Awesome\\""""
File "<ipython-input-6-d691e511a27b>", line 1
n="""\\"Axis of Awesome\\""""
^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
这是一个Python bug/feature/oddity,还是我遗漏了一些基本的东西?
似乎调试python代码是一项简单的任务,只需插入以下行来触发调试器.
import pdb
pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
是的,所以我试过了,它的效果非常好.这是一个不错的调试器.
但有可能启动一个未经修改的python程序,可能指定一个文本文件,列出断点位置?这就是我通常用Java或Flash做的方式.
经过长时间的休整,我又回到了c.这是我写的一个小程序来输出文件大小.它编译,并且它正常工作,并且几乎从手册页复制和粘贴.但它给了我一个恼人的gcc警告.
gcc -ggdb read_file_to_char_array.c -o read_file_to_char_array `mysql_config --cflags --libs && pkg-config --cflags --libs gtk+-2.0 && pkg-config --cflags --libs sdl`
read_file_to_char_array.c: In function ‘main’:
read_file_to_char_array.c:22:19: warning: [enabled by default]
/usr/include/i386-linux-gnu/sys/stat.h:216:12: note: expected ‘int’ but argument is of type ‘struct FILE *’`
Run Code Online (Sandbox Code Playgroud)
关于如何让它消失的任何提示(不禁用警告;))
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char **argv) {
unsigned long *lengths;
FILE *fp;
struct stat sb;
fp = fopen("image.png", "rb");
fstat(fp,&sb);
printf(" Size - %lld : ", (long long)sb.st_size); …Run Code Online (Sandbox Code Playgroud) python ×4
scala ×4
bdd ×1
c ×1
case ×1
casting ×1
command-line ×1
covariance ×1
debugging ×1
either ×1
eol ×1
extractor ×1
fabric ×1
java ×1
jrebel ×1
maven ×1
monads ×1
nested ×1
paramiko ×1
php ×1
pointers ×1
pyparsing ×1
scala-option ×1
specs ×1
ssh-agent ×1
ssh-keys ×1
stat ×1
string ×1
syntax-error ×1
types ×1
warnings ×1