小编Mat*_*att的帖子

如何通过存储库共享公共build.gradle?

我正在考虑将maven构建移植到gradle.maven的一个特性是pom继承,我可以在pom中声明各种常见行为,将其发布到存储库,然后通过<parent>具体项目中的元素使用它.

我的问题就是gradle中是否存在等效行为?

我以前在ant + ivy中通过导入一个公共的build.xml来完成这个任务,这个build.xml依赖于已经从源代码控制中检查了公共build.xml的位置或使用了类似svn:externals的东西.我可以毫无困难地重复这种方法,但这似乎是maven做得很好的一件事,所以在gradle中看到类似的东西会很高兴.

gradle maven-3 maven

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

使用subshel​​l和substring打击坏替换

一个人为的例子......给出了

FOO="/foo/bar/baz"
Run Code Online (Sandbox Code Playgroud)

这工作(在bash中)

BAR=$(basename $FOO) # result is BAR="baz"
BAZ=${BAR:0:1}       # result is BAZ="b"
Run Code Online (Sandbox Code Playgroud)

这不

BAZ=${$(basename $FOO):0:1} # result is bad substitution
Run Code Online (Sandbox Code Playgroud)

我的问题是哪个规则导致这个[子shell替换]评估不正确?如果有的话,在1跳中执行此操作的正确方法是什么?

string bash substitution subshell

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

获得相同类型的多个guice单身人士

你能得到2个相同底层类型的单例实例吗?

这在春天显然是微不足道的,因为它基于你附加范围的命名实例,但我看不到guice中的等价物,它是关于实现类的绑定类型.请注意,我不希望必须绑定到实例,因为有问题的实例被guice注入了其他依赖项.

java dependency-injection guice

13
推荐指数
2
解决办法
7349
查看次数

分配延迟似乎很高,为什么?

我有一个在低延迟环境中运行的(java)应用程序,它通常处理大约600微米(+/- 100)的指令.当然,随着我们进一步进入微秒空间,您看到的成本延迟会发生变化,现在我们已经注意到2/3的时间用于分配2个核心域对象.

基准测试已将代码的违规部分与现有引用中的对象构造完全隔离,即基本上是一组引用(每个类中约15个)和一些新的列表,但请参阅下面关于确切测量的内容的注释这里.

每个人一直需要~100微米,这对我来说是莫名其妙的,我试图找出原因.一个快速的基准测试表明,一个类似大小的对象充满了字符串需要大约2-3微米到新的,显然这种基准充满了困难,但认为它可能是有用的基线.

这里有2个Q.

  • 如何调查这种行为?
  • 缓慢分配的解释是什么?

请注意,所涉及的硬件是Sun X4600上的Solaris 10 x86,带有8*双核opteron @ 3.2GHz

我们看过的东西包括

  • 检查PrintTLAB统计信息,显示一些缓慢的分配,因此不存在争用.
  • PrintCompilation建议这些代码中的一个不是JIT友好的,虽然Solaris似乎在这里有一些不寻常的行为(即对现代的linux,没有与solaris10类似的老式的Linux现在就可以进行替换)
  • LogCompilation ...有点难以解析,至少可以说这是一项持续的工作,到目前为止还没有什么明显的
  • JVM版本...在6u6和6u14中保持一致,尚未尝试过6u18或最新版本7

任何和所有的想法赞赏

关于各种帖子的评论摘要,试图让事情更清楚

  • 我测量的成本是创造,它通过生成器(像一个内置对象的总成本这些),其私人构造函数调用新的ArrayList几次以及对现有对象设置引用.测量的成本包括设置构建器的成本以及构建器到域对象的转换
  • 编译(通过热点)有明显的影响,但它仍然相对较慢(在这种情况下编译从100micros到~60)
  • 在我的天真基准测试中编译(通过热点)需要将分配时间从~2micros降低到~300ns
  • 延迟不会因年轻的收集算法(ParNew或平行清除)而有所不同

java latency allocation jvm-hotspot low-level

8
推荐指数
1
解决办法
528
查看次数

如何将gnuplot极限限制在180度范围内?

我试图用gnuplot绘制扬声器在+/- 90度范围内的离轴响应.我很好地工作,几乎完全是因为在gnuplot创建麦克风极点模式图

我想扩展这个,所以它提出了前进的"180范围,但我不知道如何做到这一点,并会欣赏一些指示.

到目前为止这是我的代码

gnuplot <<EOF
set terminal pngcairo size ${WIDTH}/2,${HEIGHT}/2 font ',10'

set polar
set angle degrees
set size ratio 1
set tmargin 3
set bmargin 3

set style line 11 lc rgb 'gray80' lt -1
set grid polar ls 11

unset border
unset xtics
unset ytics

set xrange [-30:30]
set yrange [-30:30]
set key

r=1
set rrange [0:r]
set rtics 0.166 format '' scale 0
set label '0°' center at first 0, first r*1.05
set …
Run Code Online (Sandbox Code Playgroud)

gnuplot polar-coordinates

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

sonarqube 5.6和LDAP 2.0无法进行身份验证

我正在测试升级到sonarqube 5.6并安装了ldap 2.0插件并将相关配置复制到我的测试5.6设置.

相关的配置是

sonar.security.realm=LDAP
ldap.url=ldaps://xxxx:636
ldap.bindDn=uid=xxxx,ou=xxxx,dc=xxxx,dc=xxxx
ldap.bindPassword=xxxx
ldap.user.baseDn=dc=xxxx,dc=com
ldap.user.request=(&(objectClass=person)(mail={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
Run Code Online (Sandbox Code Playgroud)

我在conf/sonar.properties中设置了以下内容

sonar.log.level=DEBUG
Run Code Online (Sandbox Code Playgroud)

在启动时,我看到了

2016.07.26 23:57:29 INFO  web[o.s.p.l.LdapContextFactory] Test LDAP connection on ldaps://xxxx:636: OK
2016.07.26 23:57:29 INFO  web[org.sonar.INFO] Security realm started
Run Code Online (Sandbox Code Playgroud)

如果我尝试登录,则会在登录屏幕上显示"身份验证失败".日志文件除此之外什么也没说

2016.07.26 23:57:47 DEBUG web[http] GET / | time=67ms
2016.07.26 23:57:47 DEBUG web[http] GET / | time=187ms
2016.07.26 23:57:47 DEBUG web[http] GET /sessions/new | time=89ms
2016.07.26 23:57:53 DEBUG web[http] POST /sessions/login | time=71ms
Run Code Online (Sandbox Code Playgroud)

相同的配置适用于sonarqube 4.5.7和ldap 1.4

欢迎提出如何进一步调查的想法.

ldap sonarqube sonarqube-ops sonarqube5.6

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