有没有办法我可以配置maven 总是下载源和javadocs?-DdownloadSources=true -DdownloadJavadocs=true
每次指定(通常伴随着运行mvn编译两次因为我第一次忘记)变得相当乏味.
在scala中进行反向排序的最佳方法是什么?我想以下有点慢.
list.sortBy(_.size).reverse
Run Code Online (Sandbox Code Playgroud)
有没有一种方便的方式使用sortBy但得到反向排序?我宁愿不需要使用sortWith
.
我正在使用Twitter Bootstrap - 而且我不是前端开发人员!然而,它正在使这个过程 - 我敢说 - 有趣!
我对工具提示有点困惑.它们包含在文档中,但Twitter假设了一些知识.例如,他们说要使用以下JavaScript代码触发工具提示.
$('#example').tooltip(options)
Run Code Online (Sandbox Code Playgroud)
在浏览了它们的源代码之后,我意识到带有工具提示的字段需要在一个类中并运行以下代码.
$('.tooltipclass').tooltip(options)
Run Code Online (Sandbox Code Playgroud)
但现在我的问题是,为什么Twitter Bootstrap不能提供这样的课程tooltip
?只是为了允许更大的配置?是否更好地使用工具提示添加单个元素tooltipclass
,或者我应该添加周围区域tooltipclass
?如果我使用类标识符(.class
)而不是名称标识符(#name
),这有关系吗?
我知道Scala中的并行集合.它们很方便!但是,我想迭代一个文件的行,这个文件对于并行的内存来说太大了.例如,我可以创建线程并在扫描仪上设置锁定,但如果我可以运行以下代码,那将会很棒:
Source.fromFile(path).getLines.par foreach { line =>
Run Code Online (Sandbox Code Playgroud)
然而不幸的是
error: value par is not a member of Iterator[String]
Run Code Online (Sandbox Code Playgroud)
在这里完成一些并行性的最简单方法是什么?现在,我将阅读一些行并且并行处理它们.
我经常将字符串与正则表达式匹配.在Java中:
java.util.regex.Pattern.compile( "\ W +").匹配( "this_is").匹配
哎哟.Scala有很多选择.
"\\w+".r.pattern.matcher("this_is").matches
"this_is".matches("\\w+")
"\\w+".r unapplySeq "this_is" isDefined
val R = "\\w+".r; "this_is" match { case R() => true; case _ => false}
第一个和Java代码一样重.
第二个问题是您无法提供已编译的模式("this_is".matches("\\w+".r")
).(这似乎是一种反模式,因为几乎每次有一个采用正则表达式进行编译的方法都存在需要正则表达式的重载).
第三个问题是它滥用unapplySeq
,因此是神秘的.
第四个在分解正则表达式的部分时很好,但是当你只想要一个布尔结果时,它太重了.
我错过了一种简单的方法来检查正则表达式的匹配吗?有String#matches(regex: Regex): Boolean
没有定义的原因?事实上,在哪里String#matches(uncompiled: String): Boolean
定义?
我想等待可能失败的scala未来.如果我使用Await.result
异常将被抛出.相反,如果我有,f: Future[String]
我想要一个方法Await.resultOpt(f): Option[String]
或Await.resultEither(f): Either[String]
.
我可以通过使用scala.util.control.Exception.catching
或我可以得到这个f map (Right(_)) recover { case t: Throwable => Left(t) }
,但必须有一个更直接的方式.
我正在阅读Java程序中的一些文本文件,并希望用ASCII近似替换一些Unicode字符.这些文件最终将被分解为提供给OpenNLP的句子.OpenNLP不识别Unicode字符并在许多符号上给出不正确的结果(它将"girl"标记为"girl"和"s",但如果它是Unicode引用则将其视为单个标记).
例如,源语句可能包含Unicode方向引用U2018('),我想将其转换为U0027(').最终我将剥离剩余的Unicode.
我知道我正在丢失信息,而且我知道我可以编写正则表达式来转换这些符号中的每一个,但我想知道是否有可以重用的代码来转换这些符号中的一些.
这就是我能做到的,但我相信我会犯错误/错过/等等:
// double quotation (")
replacements.add(new Replacement(Pattern.compile("[\u201c\u201d\u201e\u201f\u275d\u275e]"), "\""));
// single quotation (')
replacements.add(new Replacement(Pattern.compile("[\u2018\u2019\u201a\u201b\u275b\u275c]"), "'"));
Run Code Online (Sandbox Code Playgroud)
替换是一个自定义类,我后来运行并应用替换.
for (Replacement replacement : replacements) {
text = replacement.pattern.matcher(text).replaceAll(r.replacement);
}
Run Code Online (Sandbox Code Playgroud)
如你所见,我必须找到:
我正在使用Travis进行持续构建和集成.
after_success:
- sbt publish
Run Code Online (Sandbox Code Playgroud)
虽然我们希望Travis构建我们所有的分支并提取请求,但我们只希望它publish
在master
分支时.
publishTo <<= version { (v: String) =>
val nexus = s"asdf"
/* Don't let Travis publish when building pull requests.
* $TRAVIS_PULL_REQUEST == "false" if it's not a pull request. So we wan't publishTo to be
* None when TRAVIS_PULL_REQUEST != false.
*/
if(Try(sys.env("TRAVIS_PULL_REQUEST")).getOrElse("false") != "false")
None
/* Don't let Travis publish except when building master. */
if(Try(sys.env("TRAVIS_BRANCH")).map(_ != "master").getOrElse(false))
None
else if(v.trim.endsWith("SNAPSHOT"))
Some("snapshots" at nexus + "snapshots")
// don't …
Run Code Online (Sandbox Code Playgroud) 在Eclipse中,当您在运行对话框中指定参数时,Eclipse会将其解释${foo}
为使用Eclipse变量foo的请求.我想将一个字符串传递给我的应用程序包含${foo}
但是Eclipse将其视为未定义的变量并给我一个错误.
-Dfoo "bar" --pattern "regex magic ${foo}"
Run Code Online (Sandbox Code Playgroud)
Eclipse不接受单引号(')作为引用字符,而是成为输入的一部分.有没有人知道我如何${foo}
在这个对话框中逃脱,所以它被解释为文本而不是变量引用?
我最近转换了一个svn存储库git svn
.不幸的是,svn历史记录有许多空提交消息.当我在没有提交消息的最近提交之前重新定义和编辑/重新提交提交时,这是一个问题.
$ git rebase -i d01
[detached HEAD ff9839c] asdf
2 files changed, 9 insertions(+), 0 deletions(-)
Aborting commit due to empty commit message.
Could not apply 054e890...
$ git branch
* (no branch)
master
$ git commit --amend
fatal: You are in the middle of a cherry-pick -- cannot amend.
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我为第二次最近的提交做了一个提交消息,提交了一个空提交消息,并且在最近一次提交时使用空提交消息停止了.
我想一次编辑所有提交空消息的提交.有没有办法可以做到这一点?也许我可以使用空提交消息更改所有提交以使提交消息首先"空"?