小编Aar*_*lla的帖子

如何找到请求丢失POM的POM?

当我构建我的项目时,我收到以下警告:

[INFO] ------------------------------------------------------------------------
[INFO] Building XXX
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.eclipse.update:org.eclipse.update.configurator:jar:3.2.0 is missing, no dependency information available
[WARNING] The POM for org.eclipse.emf:org.eclipse.emf.ecore:jar:2.3.2 is missing, no dependency information available
[WARNING] The POM for com.ibm.icu:com.ibm.icu:jar:3.4.4 is missing, no dependency information available
Run Code Online (Sandbox Code Playgroud)

在我的构建中,我覆盖了这些依赖项的版本,并且构建本身也成功了.

修复警告的最快方法是什么?

编辑:找到包含这些版本的POM的最快方法是什么?

注意:我的本地仓库中有7000个POM.

dependencies warnings pom.xml maven

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

最有效的数据结构,为文本添加样式

我正在寻找最佳的数据结构来为文本添加样式(比如在文本编辑器中).该结构应允许以下操作:

  1. 在绝对位置X快速查找所有样式
  2. 在任何位置快速插入文本(必须移动该位置后的样式).
  3. 文本的每个位置都必须支持任意数量的样式(重叠).

我已经考虑了包含文本范围的列表/数组,但是它们不允许快速插入而不重新计算插入点之后所有样式的位置.

具有相对偏移的树结构支持#2,但是当我向文本添加大量样式时,树将快速退化.

还有其他选择吗?

text text-editor styling styledtext data-structures

10
推荐指数
1
解决办法
5649
查看次数

如何"关闭"ClassLoader?

我有一个案例,我需要在我的应用程序中创建许多类加载器,以便在用户提供的脚本运行时暂时显示一些代码.我正在使用URLClassLoader它,它的效果非常好.

当脚本终止时,我想"卸载"或"关闭"类加载器以释放资源.

是否足以将类加载器的引用设置为null?我特别想知道我是否最终会用完文件句柄,因为额外的类在JAR文件中.

PS:必须使用Java 5及更高版本.是的,我知道...

java urlclassloader

10
推荐指数
3
解决办法
6940
查看次数

Spring依赖注入:注入所有接口实例

如果可能的话,我如何使用实现特定接口的所有其他Spring bean的集合来配置Spring bean?

示例:我想将CarFactorybean与实现该CarManufacturer接口的bean列表连接起来.

java spring dependency-injection

10
推荐指数
1
解决办法
5989
查看次数

使用多种接口的最佳方法是什么?

我有一个情况,我有很多模型类(~1000)实现任意数量的5个接口.所以我有一些实现一个的类和一个实现四个或五个的类.

这意味着我可以对这五个接口进行任何排列.在经典模型中,我必须实现32-5 = 27"元接口",它们"捆绑"接口中的接口.通常,这不是问题,因为IB通常是扩展IA等,但在我的情况下,五个接口是正交/独立的.

在我的框架代码中,我有一些方法需要实现任意数量的接口的实例.所以,让我们假设我们有类X和接口IA,IB,IC,IDIE.X实现IA,IDIE.

情况变得更糟,因为其中一些接口具有正式的类型参数.

我现在有两个选择:

  1. 我可以定义一个界面IADE(或者更确切地说IPersistable_MasterSlaveCapable_XmlIdentifierProvider;下划线只是为了您的阅读乐趣)

  2. 我可以定义一个泛型类型,<T extends IPersistable & IMasterSlaveCapable & IXmlIdentifierProvider>这将为我提供一个方便的方法来混合和匹配接口,因为我需要它们.

  3. 我可以使用这样的代码:IA a = ...; ID d = (ID)a; IE e = (IE)e然后使用具有正确类型的局部变量来调用方法,即使所有三个都在同一个实例上工作.或者在每个第二个方法调用中使用强制转换.

第一个解决方案意味着我得到了很多名称非常难以理解的空接口.

第二种使用一种"临时"打字.javac当Eclipse正确的时候,Oracle 有时会绊倒他们.

最后一个解决方案使用演员表.努夫说.

问题:

  1. 是否有更好的解决方案来混合任意数量的接口?

  2. 有没有理由避免解决#2为我提供的临时类型(除了Oracle的缺点javac)?

注意:我知道编写不能用Oracle编译的代码javac是一种风险.我们知道我们可以应对这种风险.

[编辑]我试图尝试在这里似乎有些困惑.我的模型实例可以具有以下特征之一:

  • 他们可以是"掌握奴隶主"(想想克隆)
  • 它们可以具有XML标识符
  • 他们可能支持树操作(父/子) …

java generics interface

10
推荐指数
1
解决办法
176
查看次数

高效的并发树

我正在寻找一种实现并发树结构的有效方法.如果这有帮助,假设我有比读取结构更多的读取访问权限.

树应该支持这些操作:

  • 添加和删​​除节点
  • 每次插入新节点时对分支进行排序
  • 迭代所有节点(没有ConcurrentModificationException)
  • 按路径查找元素

java concurrency tree

10
推荐指数
2
解决办法
5973
查看次数

警告无法使用环境中的"javac"自动检测"javac"路径

运行Maven时,我得到了这个输出:

[WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment.
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

maven-2 javac maven-3

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

为什么语句if(!condition){console.log(condition)}显示为true

我想创建一个String方法,它接受一个RegExp和一个回调,然后通过RegExp拆分String,并在split数组中插入回调的返回.简而言之,它会做这样的事情:

"a 1 b 2 c".method(/\d/, function ($1) { return $1 + 1; })
    => [a, 2, b, 3, c]
Run Code Online (Sandbox Code Playgroud)

如果String与RegExp不匹配,它应该返回一个数组,如下所示:

"a b c d e".method(/\d/, function ($1) { return $1 + 1; })
    => ["a b c d e"]
Run Code Online (Sandbox Code Playgroud)

我写了这段代码,但它没有像我想的那样工作:

String.prototype.preserveSplitReg = function(reg, func) {

    var rtn = [], 
        that = this.toString();
    if (!reg.test(that)) {
        console.log(reg, that, reg.test(that));
        return [that];
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

只有当String不匹配时才应该调用console.log reg,对吧?但有时它会记录(reg, that, true).麻烦的字符串reg是:

"See <url>http://www.w3.org/TR/html5-diff/</url> for changed elements and attributes, …
Run Code Online (Sandbox Code Playgroud)

javascript regex

10
推荐指数
1
解决办法
142
查看次数

Maven突然想要src /而不是src/main/java

我正在使用Maven 3.3.3和Eclipse Mars以及m2e.昨天,我创建了一个新的Java项目并将其转换为Maven项目.

之后,类路径只包含src而不是标准src/main/java.我很惊讶,但我只是创建了丢失的文件夹并运行了m2e的"更新项目".这并没有解决问题; m2e仍坚持只使用src.

所以我手动编辑了类路径,最后得到了通常的结果

src/test/java
src/test/resources
src/main/java
src/main/resources
Run Code Online (Sandbox Code Playgroud)

当我现在尝试m2e的"更新项目"时,我收到此错误:

Cannot nest 'foo/src/test/java' inside 'foo/src'. To enable the nesting, exclude 'test/' from 'foo/src'
Run Code Online (Sandbox Code Playgroud)

叹了口气,然后我去了命令行并跑去mvn eclipse:eclipse获取这个类路径:

src/test/java
src/test/resources
src
src/main/resources
Run Code Online (Sandbox Code Playgroud)

现在,我完全难过了.为什么会这样?

eclipse maven m2e

10
推荐指数
1
解决办法
2万
查看次数

为什么linux内核使用陷阱门来处理divide_error异常?

在内核2.6.11.5中,除零异常处理程序设置为:

set_trap_gate(0,&divide_error);
Run Code Online (Sandbox Code Playgroud)

根据"了解Linux内核",用户模式进程无法访问英特尔陷阱门.但是用户模式进程很可能也会生成一个divide_error.那么为什么Linux以这种方式实现呢?

[编辑]我认为问题仍然是开放的,因为set_trap_gate()将IDT条目的DPL值设置为0,这意味着只有CPL = 0(读取内核)代码才能执行它,因此我不清楚如何从该处理程序调用此处理程序用户模式:

#include<stdio.h>

int main(void)
{
    int a = 0;
    int b = 1;

    b = b/a;

    return b;
}
Run Code Online (Sandbox Code Playgroud)

这是编译的gcc div0.c.输出./a.out是:

浮点异常(核心转储)

因此看起来这不是由0陷阱代码划分处理的.

linux x86 kernel interrupted-exception

9
推荐指数
3
解决办法
3186
查看次数