小编Joe*_*ney的帖子

常春藤 - 将解析结果输出到常春藤文件

解决了我的ivy.xml文件之后,我想创建一个新resolved-ivy.xml文件,其中包含解析中找到的所有传递依赖项.是否有可能做到这一点?

这与交付不同,我相信它只会写出您的直接依赖关系ivy.xml,而不是传递依赖关系.该deliverAnt任务确实有一个delivertarget属性,它看起来在文档中像它应该做到这一点.实际上,它仅适用于同一组织中的模块(因此通常不适用于所有依赖项)并为每个模块生成一个文件.

它也ivy-report与解析期间生成的XML文件不同,但并没有太大的不同.如果我正在尝试的是不可能的,那么我想直接破解这个文件,我想.

此处的上下文尝试启用可重复的可重现构建,包括存在更改(新库,版本)的存储库.试图这样做的互联网周围有帖子,我发现没有一个可以正确地做到这一点.

  • 对Ivy存储库的添加可以更改解析结果,特别是如果存储库中任何位置(而不仅仅是您的项目)中的任何依赖项具有范围依赖性.例如:A依赖于B;[2.0,4.0]B;3.1稍后添加到存储库.
  • 想法是正常解决,将解决方案写为扁平的常春藤文件,将其保存在项目的VCS中用于该标记(或其他),然后用该文件解析该文件transitive="false".假设存储库中的现有项不会更改,这允许可重复的构建.
  • 如果有人对此有任何更好的想法,我会全力以赴.目前我期望不得不破解一些组合ResolveEngine使其ResolveReport可用,然后添加一个自定义DeliverEngine来使用它.

java dependencies build ivy dependency-management

7
推荐指数
1
解决办法
1767
查看次数

在没有比赛的情况下在ConcurrentMultimap上实现删除

我一直在研究编写并发Multimap的问题,我有一个由Google Guava AbstractSetMultimap 支持的实现和一个MapMaker计算映射,它根据需要创建值集合作为ConcurrentHashMap的集合视图.稍微关注视图集合和各种包装器,我认为这非常接近.

已经尝试过这个问题其他人已经讨论过的一个大问题,就是在没有引入竞争条件的情况下,当它们变空时从底层地图中删除值集合.

似乎存在两种选择.

  • 把空集合留在那里.这会泄漏一些CHM,但我相信它至少是正确的.
  • 在空的时候乐观地尝试删除集合并补偿其中是否还有其他内容.这充满了种族,似乎无法修复.
  • 同步values-collection上的所有内容,这至少允许这种删除,但是以按键初始查找后的任何并发为代价.
  • 对于较小的惩罚(可能,取决于使用模式?),也许同步值集合创建和删除,需要检查是否涵盖了所有内容.

问题:

  • 有谁知道比这更好的实现?我们可以更好地组合MapMaker,还是需要从头开始编写专门的ConcurrentHashMultimap?
  • 如果在这方面很难有所改进,那么这种泄漏在实践中可能是一个很大的问题吗?诸如java.util.HashMap,juc.ConcurrentHashMap和ArrayDeque等值得注意的集合不会向下调整后备存储的大小,并且ArrayList不会自动执行此操作.只要我们清理掉这些物体,我就想知道这是否会过于重要.

谢谢


编辑:另请参阅guava邮件列表中的讨论.


编辑2:我已经写完了.有关实施,请参阅此Google代码区域.我非常感谢任何尝试它的人的反馈,而不是在这里.

java concurrency multimap concurrenthashmap guava

6
推荐指数
1
解决办法
775
查看次数

为什么SQL Server无法更改存储过程中的视图?

我正在使用MS SQL Server,我想通过执行"alter view VIEWNAME as([some sql])"之类的操作来改变存储过程中的视图.

谷歌提出的一些页面声称这不是直接支持的(并且都不是相关的alter-table语句),但也有一些例子说明如何使用这样的结构来解决它:

declare @sql varchar(max)
select @sql = 'alter view VIEWNAME as ([some sql])'
exec(@sql)
Run Code Online (Sandbox Code Playgroud)

将代码编写为文字字符串有点味道,即使对于SQL也是如此.

我的问题:

  1. 为什么不支持?从sproc运行它并将其作为独立语句运行之间的区别是什么?
  2. 为什么通过exec文字SQL字符串的解决方法有效?我的理解exec语句的是它只是在线执行SQL,这是不正确的?
  3. (不乐观)有没有更好的方法从存储过程中更改视图?

sql sql-server stored-procedures alter-table sql-view

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

在OQL的堆转储中获取类的静态字段

我有一个堆转储,并且正在使用Eclipse MAT,尽管我认为这应该通过visualvm或任何OQL客户端来工作。

我们可以通过执行以下操作来选择类的所有实例的字段

select s.field1, s.field2 from org.me.MyClass
Run Code Online (Sandbox Code Playgroud)

...但这仅限于成员变量和带有实例的类型。

如何选择没有实例的类的静态字段?

这与另一个问题有关

java eclipse heap oql eclipse-mat

5
推荐指数
2
解决办法
3299
查看次数

scalaz 7相当于来自scalaz 6的`<|*|>`

Nick Partridge关于导出scalaz的演示文稿中,基于旧版本的scalaz,他使用函数引入了验证:

def even(x: Int): Validation[NonEmptyList[String], Int] =
  if (x % 2 == 0) x.success else { s"not even: $x".wrapNel.failure }
Run Code Online (Sandbox Code Playgroud)

然后他结合这个使用

even(1) <|*|> even(2)
Run Code Online (Sandbox Code Playgroud)

应用测试并返回带有失败消息的验证.使用scalaz 7我得到了

scala> even(1) <|*|> even(2)
<console>:18: error: value <|*|> is not a member of scalaz.Validation[scalaz.NonEmptyList[String],Int]
       even(1) <|*|> even(2)
               ^
Run Code Online (Sandbox Code Playgroud)

什么是scalaz 7相当于这个组合器?

scala scalaz scalaz7

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

给定别名,从 ssh 配置中获取主机名

我有一个 SSH 配置文件,如:

Host myAlias
  HostName the.actual.host.name.com
Run Code Online (Sandbox Code Playgroud)

是否可以从别名、shell 而不连接到主机来解析主机名?我的目标是:

$ <something> myAlias
the.actual.host.name.com
Run Code Online (Sandbox Code Playgroud)

ssh bash ssh-config

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

Java系统属性是如何从主机派生的?

默认情况下,JVM中有一组可用的系统属性,如此处所述.热点在哪里派生?

user.home必须在不同的操作系统上以不同的方式确定属性,我正在寻找执行此操作的代码.

java jvm environment-variables jvm-hotspot

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