小编Das*_*tor的帖子

如何获取捆绑配置以使用多个构建选项?

我正在尝试使用捆绑器来安装一些软件包,我想使用的命令是:

bundle install --path vendor/bundle
Run Code Online (Sandbox Code Playgroud)

然而,由于libxml2 是一个混蛋,我需要使用如下命令预先设置配置:

bundle config --local build.nokogiri --with-xml2-include=dir1 --with-xml2-lib=dir2 --with-xslt-include=dir3 --with-xslt-lib=dir4
Run Code Online (Sandbox Code Playgroud)

但当我查看该.bundle/config文件时,我看到:

BUNDLE_BUILD__NOKOGIRI: --with-xml2-include=dir1
  --with-xml2-lib=dir2 --with-xslt-include=dir3 --with-xslt-lib=dir4
Run Code Online (Sandbox Code Playgroud)

您会注意到dir2dir3dir4出现在下一行,而不是与 位于同一行dir1。这是一个问题,因为当我键入bundle config显示当前配置时,我发现它无法识别第二行配置:

Settings are listed in order of priority. The top value will be used.
build.nokogiri
Set for your local app (/path/app/.bundle/config): "--with-xml2-include=dir1"
Run Code Online (Sandbox Code Playgroud)

如何保留bundle config多个构建选项?仅供参考,我已经尝试在它们周围加上引号,并删除--local- 它们产生了相同的结果。

我使用的是捆绑器版本 1.3.5

bundle config bundler

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

覆盖 rake 任务和 rake 任务依赖性?

我正在使用一个构建系统,它定义了许多 rake 目标,包括这个:

task :test => [:all]
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是不正确的,所以我定义了自己的 rake 任务,如下所示:

task :test => [:spec]
task :all => [:test, :build]
task :release => [:all]
task :default => [:release]
Run Code Online (Sandbox Code Playgroud)

但是,现在当我尝试构建我的包时遇到此错误:

Circular dependency detected: TOP => default => all => test => all
Tasks: TOP => default => all => test
BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

我开始意识到,定义 rake 任务(或 rake 任务的依赖项)只是将这些任务/依赖项附加到任务定义中!这真让我抓狂!为什么我不能按照我认为合适的方式重新定义我的 rake 任务?!有没有办法覆盖 rake 任务和/或覆盖 rake 任务的依赖项?

ruby rake circular-dependency rakefile rake-task

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

如何使用Ruby在目录中找到最近修改过的文件夹?

如何使用Ruby在目录中找到最近修改过的文件夹(NOT A FILE)?

ruby directory file find

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

序列化Android视图 - 导致IllegalAccessException出现InvalidClassException

我正在尝试制作一个Android应用程序,它将小部件(表示为视图)存储在数据库中,然后能够在以后重新创建它们.

以下是它的要点:

public class DBSerializer<T extends View & Serializable> {

public int storeWidget(T widget) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(bytes);
    out.writeObject(widget);
    byte[] data = bytes.toByteArray();
    bytes.close();
    out.close();
    <store "data" in database>;
    return <unique database id>;
}

public T getWidget(int id) {
    byte[] data = <get data from database for the given id>;
    ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data));
    return (T)in.readObject();
}

}
Run Code Online (Sandbox Code Playgroud)

不幸的是,in.readObject()抛出带有消息的InvalidClassException android.view.View; IllegalAccessException.

由于Android的View直接扩展了Object,而Object有一个无参数的构造函数,所以不应该这样吗?或者它是否尝试使用无参数构造函数调用View?错误消息不清楚异常的确切原因是什么.

有谁知道是什么导致了这个以及如何解决它?

database serialization android view illegalaccessexception

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

如何使用ssh-add从代理中删除身份(pem文件)

我可以使用轻松地将pem文件添加到SSH代理中ssh-add,如下所示:

$ ssh-add /home/jsmith/keys/mytest.pem
Run Code Online (Sandbox Code Playgroud)

但我似乎无法删除它们:

$ ssh-add -d /home/jsmith/keys/mytest.pem
Bad key file /home/jsmith/keys/mytest.pem: No such file or directory
Run Code Online (Sandbox Code Playgroud)

尽管pem文件仍然存在...我还没有进行任何移动或更改。为什么刚才从我添加的SSH代理中删除这个pem文件时遇到了很多麻烦?正确的方法是什么?

我想避免使用ssh-add -D(使用大写字母“ D”),因为那样会从SSH代理中删除所有身份,而我只想删除我指定的身份。

linux ssh pem ssh-agent

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

Java:如何配置 System.out 以启用自动刷新?

我像这样使用反射来打印出System.out对象的属性:

System.out.println("Class: " + System.out.getClass().getName());
for (Field field : ObjectUtils.getAllFields(System.out)) {
    field.setAccessible(true);
    System.out.println("> " + field.getType().getSimpleName() + ' ' + field.getName() + " = " + field.get(System.out));
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

Class: java.io.PrintStream
> boolean autoFlush = false
> boolean trouble = false
> Formatter formatter = null
> BufferedWriter textOut = java.io.BufferedWriter@43c1b556
> OutputStreamWriter charOut = java.io.OutputStreamWriter@587e5365
> boolean closing = false
> OutputStream out = org.apache.tools.ant.util.TeeOutputStream@22fcf7ab
Run Code Online (Sandbox Code Playgroud)

如您所见,autoflush设置为false。所以我的问题很简单-我怎么配置System.out已经autoflush设置为true

java flush printwriter autoflush system.out

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

使用 `-XX:+PerfDisableSharedMem` JVM 标志是否有任何性能缺点?

从我在网上读到的内容来看,听起来很多人建议设置-XX:+PerfDisableSharedMemJVM 标志来修复由于垃圾收集器尝试写入/tmp(hsperfdata) 时 IO 阻塞而导致的高 GC 暂停延迟。

我正在尝试优化系统垃圾收集的性能,并且我尝试在设置标志之前和之后运行负载测试,并且实际上在没有标志的情况-XX:+PerfDisableSharedMem下性能稍好一些!我什至第二次重新运行负载测试并得到相同的结果。

所以我的问题是:这只是一个侥幸,还是-XX:+PerfDisableSharedMem实际上有任何潜在的负面性能影响?

(我知道使用-XX:+PerfDisableSharedMem意味着jstat依赖于该文件的某些诊断工具将无法工作,但我们不使用任何这些工具 - 我只是询问潜在的性能缺点,而不是工具缺点。)

java garbage-collection jvm

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