小编Cap*_*Man的帖子

eclipse.ini变量

eclipse.ini或eclipse命令行可以进行变量解析吗?

比如$ PATH或$ {java.home}?

eclipse variables command-line parsing

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

明确知道 SQLite 中哪个 FOREIGN KEY 约束失败

我收到 SQLite 错误消息“FOREIGN KEY 约束失败”。这是完整的错误信息(除了 SQL 查询的一部分),并没有帮助。(实际上,它与 Oracle 错误消息一样好(或坏)。)我需要知道约束的名称来调查我的程序中的问题。不幸的是,没有网络支持平台可以与 SQLite 社区讨论这个问题。有人知道如何从该 SQLite 库中获取有关错误的更多信息吗?

我专门为 .NET 使用 System.Data.SQLite 库,但错误消息直接来自核心,没有其他异常属性可以帮助我。

sqlite

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

如何在Java中实现包装装饰器?

问题是创建现有对象的动态增强版本.

我不能修改对象的Class.相反,我必须:

  • 它的子类
  • 将现有对象包装在新对象中 Class
  • 将所有原始方法调用委托给包装对象
  • 实现由另一个接口定义的所有方法

添加到现有对象的接口是:

public interface EnhancedNode {

  Node getNode();
  void setNode(Node node);

  Set getRules();
  void setRules(Set rules);

  Map getGroups();
  void setGroups(Map groups);

}
Run Code Online (Sandbox Code Playgroud)

有了Byte Buddy,我设法子类化并实现了我的界面.问题是委托给包装对象.我发现这样做的唯一方法是使用反射太慢(我对应用程序负载很重,性能很关键).

到目前为止我的代码是:

Class<? extends Node> proxyType = new ByteBuddy()
     .subclass(node.getClass(), ConstructorStrategy.Default.IMITATE_SUPER_TYPE_PUBLIC)
     .method(anyOf(finalNode.getClass().getMethods())).intercept(MethodDelegation.to(NodeInterceptor.class))
     .defineField("node", Node.class, Visibility.PRIVATE)
     .implement(EnhancedNode.class).intercept(FieldAccessor.ofBeanProperty())
     .defineField("groups", Map.class, Visibility.PRIVATE)
     .implement(EnhancedNode.class).intercept(FieldAccessor.ofBeanProperty())
     .defineField("rules", Set.class, Visibility.PRIVATE)
     .implement(EnhancedNode.class).intercept(FieldAccessor.ofBeanProperty())
     .make()
     .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
     .getLoaded();
enhancedClass = (Class<N>) proxyType;
EnhancedNode enhancedNode = (EnhancedNode) enhancedClass.newInstance();
enhancedNode.setNode(node);
Run Code Online (Sandbox Code Playgroud)

Node子类/包装的对象在哪里.在NodeInterceptor被调用的方法前锋getNode财产.

这里的代码NodeInterceptor: …

java bytecode decorator byte-buddy

9
推荐指数
1
解决办法
1173
查看次数

REST Web服务的'WSDL'首选方法是什么?

我已经构建了大量的SOAP Web服务,但我正在为特定的项目构建一个REST Web服务,我想知道人们用于REST服务的'WSDL'是什么,或者甚至是否需要它.

rest wsdl web-services

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

从 Python 脚本运行 Maven 的方法?

(我正在使用 Windows。)

我正在尝试从 python 脚本运行 maven。我有这个:

import subprocess

mvn="C:\\_home\\apache-maven-2.2.1\\bin\\mvn.bat --version"
p = subprocess.Popen(mvn, shell=True, stdout = subprocess.PIPE)

stdout, stderr = p.communicate()
print p.returncode # is 0 if success
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想知道以下几点:

  • 添加参数而不是附加字符串的更好方法。
  • 也许在没有上述情况的情况下运行 maven 的某种特定方式。
  • 一种显示输出的方法(目前它仅根据失败/成功打印 1 或 0)。

我想要实现的长期目标(如果有人有更好的方法,我会注意到这一点)是制作一个简单的脚本来构建项目列表并将另一个文件列表(罐子/其他修改过的东西)移动到要部署的文件夹中对于虚拟机,手动操作是一件非常痛苦的事情。我毫不费力地在批处理脚本中工作,我只是想学习 Python 并想知道它是否更容易管理,因为我可以制作几个列表并遍历每个位置而不是一行批处理脚本中的每个任务。

(我的批处理脚本的简短版本。)

@set version=7.8.3
@set staging_folder=C:\Users\me\Desktop\staging

@set stage_was=%staging_folder%\was
@set stage_ear=%stage_was%\stuffui.ear
@set stage_war=%stage_ear%\stuff-%version%.war

:: delete stage contents
call del /s /q %staging_folder%
call rmdir /s /q %stage_was%

:: make folders
call mkdir %stage_ear%
call mkdir %stage_war%\WEB-INF\lib

:: maven builds
call mvn -f …
Run Code Online (Sandbox Code Playgroud)

python batch-file maven

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

git为所有人提供“假定不变”的文件,而不仅仅是本地

我有一些部分生成的文件foo,我希望以初始状态签入到存储库中,但是我不希望git注意到任何更改。

我想过把它的.gitignore文件git add -f foo就足够了,但git statusgit diff显示的变化FOO以及git add .添加。反正我能做到这一点吗?

就像git update-index --assume-unchanged foo 但自动为所有人提供的功能,而不仅仅是在本地

事后编辑:有类似问题的处理到这一阵子之后,--skip-worktree最好--assume-unchanged,看到这一问题的原因。神奇地使其适用于所有人的问题仍然存在。


要成为一个更具体一点它的一些文件,它跟踪的内存数据库单元测试需要的线条CREATE USER SA PASSWORD ""GRANT DBA TO SA,如果我删除这个文件时,它就会重新生成这些行不存在。它跟踪两次运行之间的数据库状态,这就是为什么我不希望将其更改检查到存储库中的原因。

我知道这是一个奇怪的情况,弄清楚如何用这些行生成或不跟踪状态可能是一个更好的解决方案。


重现步骤

mkdir test
cd test
git init

echo "hey" > foo
git add .
git commit -m "Add hey to foo"

echo "foo" > .gitignore
git add .
git …
Run Code Online (Sandbox Code Playgroud)

git

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

在 depencencies 块中使用 Gradle 的 DependencySet 或以其他方式使用一组中的多个模块

Gradle 有一个名为DependencySetSpring 的接口,dependency-management-plugin可以在如下dependencies块中的dependencyManagement块中使用。(这里的代码供参考。)

dependencyManagement {
     dependencies {
          dependencySet(group:'org.slf4j', version: '1.7.7') {
               entry 'slf4j-api'
               entry 'slf4j-simple'
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

这对同一组中的依赖项进行分组非常漂亮。组中的依赖项越多,它就越漂亮。项目往往有很多来自同一组的依赖项,尤其是在您使用 Spring 时。有没有办法在“真正的”依赖项块中使用类似的符号?

gradle

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

Java 8:一次应用流映射和过滤

我正在为Java 8中的文件编写解析器.使用文件读取Files.lines并返回顺序Stream<String>.

每一行都映射到一个数据对象,Result如下所示:

Result parse(String _line) {
  // ... code here
  Result _result = new Result().
  if (/* line is not needed */) {
    return null;
  } else {
    /* parse line into result */
   return _result;
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以将流中的每一行映射到相应的结果:

public Stream<Result> parseFile(Path _file) {
  Stream<String> _stream = Files.lines(_file);
  Stream<Result> _resultStream = _stream.map(this::parse);
}
Run Code Online (Sandbox Code Playgroud)

但是,流现在包含null我要删除的值:

parseFile(_file).filter(v -> v != null);
Run Code Online (Sandbox Code Playgroud)

我如何组合地图/过滤器操作,如我所知,parseLine/_stream.map是否需要结果?

java lambda java-8 java-stream

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

使src / main / resources /使用“平面视图”,如Eclipse中的src / main / java

有没有办法使我的所有src/main/resources/文件夹都具有“平面视图”而不是“树视图”?

我使用的是M2Eclipse,它排除了它们(不包括**)。当然,有某种方法可以只更改首选项中的视图选项,而不是从每个项目中删除它?还是有将其删除的M2Eclipse设置?

以下是我对树状视图和平面视图的解释:


eclipse m2eclipse m2e

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

密钥过期后,OpenPGP签名的git commit会发生什么情况?

如果我使用具有到期日期的OpenPGP密钥签署git commit,那么对于在到期日期之后查看该提交的人来说意味着什么?这样用于提交签名的所有键是否应该是永久性的?

如果验证方收到我的新钥匙怎么办?还是我的老?或两者?

我是OpenPGP的新手,特别是在签署git commit方面。

git cryptography pgp key-management openpgp

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