小编jua*_*ncn的帖子

禁用Maven中央存储库

我公司的政策对自动下载的工件(它们必须得到批准)不满意,所以为了使用Maven,我需要禁用对Maven中央存储库的访问.

换句话说,我不希望Maven尝试从中央进行任何下载.

我知道如何配置本地存储库(联网或不联网),我的想法是使用"祝福"机器来更新本地存储库.

PS:我可以阻止代理/网络级别的请求,但我问的是如何使用Maven的配置.

更新 我终于想出了如何做到这一点.在maven的家中,conf目录中是全局的settings.xml.您可以将镜像设置为central指向某个内部服务器,也可以覆盖它的定义.

configuration repository maven

52
推荐指数
5
解决办法
6万
查看次数

使用Cobertura和Maven 3.0.2的正确方法是什么

在过去的几天里,我一直试图用Maven 3.0.2运行Cobertura 2.4.我们有一个非常大的项目,有很多模块(子项目).我发现文档基本上不存在或完全错误.我能找到的所有教程都不适用于Maven 3.x(它们构建,但Cobertura要么不运行,要么无法生成报告).

有没有人能够使它工作?任何有用的提示/示例?谢谢.

cobertura maven-3 maven

21
推荐指数
3
解决办法
3万
查看次数

将Scala continuation用于非阻塞API

我正在尝试使用Scala(2.9.0)延续来构建看似阻塞的API,但这实际上是异步的.假设你想写一些类似的东西:

if(ask("Continue?")) //Prompts Yes/No
  name = input("Enter your name")
Run Code Online (Sandbox Code Playgroud)

ask返回,当用户按下yes一个布尔,并input要求一个值.想象一下这是从Web服务器调用的,其中askinput不阻塞任何线程,它们只是在显示带有提示的页面(释放大多数资源)之前在Map(或会话,无关紧要)中存储延续.当响应返回时,它会查找Map中的延续并恢复代码.

到目前为止的问题是,我似乎无法找到一种合适的方法来定义askinput使用continuation而不将调用上下文的返回类型作为参数传递.

我得到的最接近的是:

#!/bin/sh
exec scala -P:continuations:enable -deprecation "$0" "$@"
!#
import util.continuations._

//Api code
def display[T](prompt: String) = shift {
  cont: (Unit => T) => {
        println(prompt)
        cont()
    }
}

//Client code
def foo() : Int = reset {
  display[Int]("foo!") // <-- how do I get rid of the type annotation?
  5
}

def bar() : Unit = …
Run Code Online (Sandbox Code Playgroud)

continuations scala

11
推荐指数
1
解决办法
558
查看次数

意外的VarHandle性能(比替代产品慢4倍)

JEP193中,的特定目标之一VarHandles是提供使用FieldUpdaters和的替代方法AtomicIntegers(并避免与之相关的一些开销)。

AtomicIntegers 由于它们是一个单独的对象(它们每个使用大约36个字节,取决于一些因素(例如是否启用压缩的OOP等)),因此在内存方面可能特别浪费。

如果您有很多整数可能需要原子更新(在许多小对象中),则要减少浪费,实质上有三种选择:

  • 使用 AtomicFieldUpdater
  • 用一个 VarHandle
  • 或重新排列代码以AtomicIntegerArray代替对象中的字段。

因此,我决定测试替代方案,并对每种方案的性能含义有所了解。

使用整数字段的原子(易失性模式)增量作为代理,我在2014年中的MacBook Pro上获得以下结果:

Benchmark                         Mode  Cnt          Score          Error  Units
VarHandleBenchmark.atomic        thrpt    5  448041037.223 ± 36448840.301  ops/s
VarHandleBenchmark.atomicArray   thrpt    5  453785339.203 ± 64528885.282  ops/s
VarHandleBenchmark.fieldUpdater  thrpt    5  459802512.169 ± 52293792.737  ops/s
VarHandleBenchmark.varhandle     thrpt    5  136482396.440 ±  9439041.030  ops/s
Run Code Online (Sandbox Code Playgroud)

在此基准测试中,速度VarHandles大约慢了四倍

我想了解的是开销来自何处?

这是由于签名多态访问方法引起的吗?我在微型基准测试中犯了错误吗?

基准细节如下。


我在2014年中的MacBook Pro上使用以下JVM运行了基准测试

> java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.2+9) …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading jvm jvm-hotspot

5
推荐指数
1
解决办法
50
查看次数

"某些脚本"不允许小牛队的辅助访问错误

我有一个脚本,用于在多显示器设置上布置窗口.升级到Mavericks后,我收到一个错误:

Organize Windows is not allowed assistive access.
Run Code Online (Sandbox Code Playgroud)

在检查Apple支持后,我发现了这个:http://support.apple.com/kb/HT5914 我按照那里描述的步骤,我签署了applet,没有太大的成功.错误仍然发生.

首先,第二个提示只有在脚本作为应用程序导出并放在/ Applications中时才会发生,如果我将它放在Documents中(也像app一样捆绑),例如它没有弹出.

当所有applet显示时,它们在"系统偏好设置"中显示为"applet"(由于它们具有标识符,因此很奇怪).

运行这种脚本有没有人有任何成功?有没有办法全局禁用安全检查?(我猜不是,但值得问)

接下来是脚本,它只是启动了几个应用程序并将它们放在屏幕上:

#Query desktop area
tell application "Finder"
    set displayAreaDimensions to bounds of window of desktop
    set widthOfDisplayArea to item 3 of displayAreaDimensions
    set heightOfDisplayArea to item 4 of displayAreaDimensions
end tell

tell application "System Events" to tell process "Dock"
    set dockPosition to position in list 1
    set dockDimensions to size in list 1
    set heightOfDock to item 2 of dockDimensions
    set positionOfDock to …
Run Code Online (Sandbox Code Playgroud)

applescript

4
推荐指数
1
解决办法
4284
查看次数