小编car*_*mer的帖子

用于Windows的git包管理?

我在github上阅读wiki for git,它说msys2捆绑了pacman:https://github.com/git-for-windows/git/wiki/Package-management

但是当我调用它时:

$ pacman
bash: pacman: command not found
Run Code Online (Sandbox Code Playgroud)

有谁知道发生了什么?这个wiki指的是哪个git版本?有没有办法在Git for windows中为msys2安装额外的软件包?

windows git bash msys msysgit

36
推荐指数
6
解决办法
3万
查看次数

当我使用String类型参数枚举vector时,我得到了ClassCast异常,但没有异常,其中Integer作为类型参数

我正在尝试向量并编写一个简单的代码来通过枚举访问它的元素.

Vector v = new Vector();
    v.add("Some String");
    v.add(10);

    Enumeration e = v.elements();
    while(e.hasMoreElements()) System.out.println(e.nextElement());
Run Code Online (Sandbox Code Playgroud)

使用原始类型会按预期生成结果(打印元素).但是,当我使用泛型类型的枚举器时,它会变得棘手.

使用String作为类型参数:

Vector v = new Vector();
    v.add("Some String");
    v.add(10);

    Enumeration<String> e = v.elements();
    while(e.hasMoreElements()) System.out.println(e.nextElement());
Run Code Online (Sandbox Code Playgroud)

输出:

一些字符串

线程"main"java.lang.ClassCastException中的异常:java.lang.Integer无法强制转换为java.lang.String

使用Integer作为类型参数:

Vector v = new Vector();
    v.add("Some String");
    v.add(10);

    Enumeration<Integer> e = v.elements();
    while(e.hasMoreElements()) System.out.println(e.nextElement());
Run Code Online (Sandbox Code Playgroud)

输出:

一些字符串

10

这里发生了什么?两个案例都不应该产生ClassCast异常吗?

java generics enumeration vector

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

Haskell - Alpine Docker镜像内的主机名解析不起作用

问题

我正在尝试使用内部的Haskell应用程序创建docker镜像.但是,我的Docker容器内的应用程序中网络中其他容器的主机名的域名解析失败(但我能够wget/ ping其他容器及其主机名正确解析).

为了找到根本原因,我尝试手动解析主机名(使用Network.DNS包)并仅使用IP地址servant-client.然而,这只会产生神秘的错误消息:

Network.BSD.getProtocolByName: does not exist (no such protocol name: udp)

我想我在Docker镜像中遗漏了一些包.我尝试过安装libc6-compat但没有成功(libc6来自Debian用于编译Haskell应用程序).而且/etc/protocols包含正确的条目.码头图像中还缺少什么?

Docker图片

我用来运行应用程序的docker镜像alpine:3.6- 整个dockerfile,里面没有多少.这与用于构建应用程序的图像不同(它小约20倍).

我用来构建haskell应用程序的docker镜像基于debian:stretch.Dockerfile.

这里提供了包含构建指令的整个源代码(可以跳过Angular部分):

https://github.com/carbolymer/blockchain/tree/0b041875f71b2a09dc8568ee7b0cc22460fd5624

haskell hostname docker docker-compose alpine-linux

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

缺少静态链接二进制文件中的调试符号

我正在使用堆栈构建静态链接二进制文件,我尝试向其添加调试符号(以下:https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html).然而GDB报道:no debugging symbols found.

我错过了什么?

我已经加入到ghc-options了在.cabal文件:-g -rtsopts和到ld-options:-static.我使用以下命令构建堆栈:

stack install \
    --install-ghc \
    --split-objs \
    --ghc-options="-fPIC -fllvm -pgmlo opt -pgmlc llc"
Run Code Online (Sandbox Code Playgroud)

GDB调用如下: gdb --args nodebug-exe +RTS -V0

GHC 8.2.1

整个源代码在这里:https://github.com/carbolymer/haskell-missing-debug-symbols

haskell gdb ghc cabal haskell-stack

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

JPA辅助表作为只读视图 - hibernate仍尝试插入行

我有以下实体:

@Entity
@Table(name = "ONE")
@SecondaryTable(name = "VIEW_TWO", pkJoinColumns = @PrimaryKeyJoinColumn(name="ONE_ID"))
public class CpBracket {

@Id
private Long id;

@Column(name="progress", table="VIEW_TWO", updatable = false, insertable = false)
private int progress = 0;

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

如您所见,此实体使用表ONE和(只读)视图VIEW_TWO.当我持久化实体时,hibernate正在执行insert into view:

insert into VIEW_TWO (ONE_ID) values (?)
Run Code Online (Sandbox Code Playgroud)

它忽略了不可更新和不可插入的列进度(这很好),它仍然试图插入ONE_ID列的值.据我所知,注释@PrimaryKeyJoinColumn将所选列标记为insertable = false和updatable = false.

如何防止hibernate将行插入到辅助表(视图)中?

java hibernate jpa view

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