小编Pat*_*iak的帖子

如何配置maven shade插件以在我的jar中包含测试代码?

我使用shade maven插件来构建我的项目,以便它的所有依赖项都包含在一个jar中(这使得在Hadoop上运行它更容易).默认情况下,Shade似乎排除了我的测试代码,这是可以理解的.由于我想对我的集群运行集成测试,我希望设置另一个配置文件来为此目的构建一个单独的jar.有没有办法配置这个插件还包括测试代码?

java hadoop maven maven-shade-plugin

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

使用KDiff3使用Git编辑差异

通常当我做差异时,我想在提交之前编辑我的本地文件.这在Eclipse的比较视图中非常有效,因为它允许您轻松编辑本地文件以及复制先前版本的更改.

我试图设置Git和KDiff3以同样的方式工作.当我使用KDiff3作为我的mergetool时,它按预期工作.但是,当我将其设置为difftool时,它为我提供了一个只读视图,因此我无法进行任何编辑.根据文档(http://kdiff3.sourceforge.net/doc/documentation.html),我希望--output选项能够给我两个我想要的文件合并,但事实并非如此.我的.gitconfig的相关部分:

[diff]
  tool = kdiff3
[difftool "kdiff3"]
  cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3 $LOCAL $REMOTE --output $LOCAL
  trustExitCode = false
Run Code Online (Sandbox Code Playgroud)

git kdiff3

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

在Grails中将主键ID更改为String类型

我的Grails 2.0应用程序定义了一个用户域对象:

class User {

static mapping = {
    table "dt_user"
    columns {
      id column:'user_id', generator:'assigned', type:'string'
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在我的BootStrap文件中保存新用户时,如下所示:

def user = new User(id: "smith").save(failOnError:true)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

| Error 2012-01-13 10:09:42,659 [main] ERROR property.BasicPropertyAccessor  - IllegalArgumentException in class: User, setter method of property: id
| Error 2012-01-13 10:09:42,660 [main] ERROR property.BasicPropertyAccessor  - expected type: java.lang.Long, actual value: java.lang.String
Run Code Online (Sandbox Code Playgroud)

我也尝试将User类更改为:

class User {
    static mapping = {
        table "dt_user"
        columns {
            id column:'user_id', generator:'assigned', type:'string', name:'id'
        }
    }

    String id 
} …
Run Code Online (Sandbox Code Playgroud)

grails grails-orm

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

转换为git时保留svn副本历史记录

我正在尝试将SVN repo转换为多个git repos.到目前为止,我一直在使用git svn clone svn_repo_project_pathSVN中的每个项目.我注意到git似乎没有遵循svn复制操作,因此生成的历史比我预期的要简单得多.假设我的SVN repo看起来像这样:

  • 一个
  • b
  • C
  • 家长PROJ
    • b
    • C

项目bc在最近复制parent-proj的重组计划与最终从自己的老位置删除它们下根的意图的一部分.当我这样做git svn clone http://svnhost/parent-proj所产生的git仓库丢失所有源自历史/b/c之前的举动.

这是git-svn的限制还是有一些方法可以让这个历史出现在我的回购中?根据我的有限研究,似乎使用获取已使用git-svn重命名的SVN repo的完整历史记录中filter-branch描述的命令可能有效,尽管在我的情况下有多个父项可能使事情复杂化.可以首先克隆整个仓库,然后从中拆分新的仓库(使用filter-branch?)是一种更好的方法吗?

git git-svn

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

JAXB如何将类名映射到XML元素名称?

我正在使用JAXB(JDK 6中包含的版本)将对象编组为XML.以下代码会产生意外结果:


    public class JAXBTest {
        @XmlRootElement
        public static class VIPPerson {}

    public static void main(String[] args) throws JAXBException {
        StringWriter sw = new StringWriter();
        VIPPerson p = new VIPPerson();
        JAXB.marshal(p, sw);
        System.out.println(sw.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

以上的输出是

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vipPerson/>
Run Code Online (Sandbox Code Playgroud)

我希望看到类名映射到VIPPerson元素而不是vipPerson基于JAXB规范中的 8.12.1节,

类名:使用java.beans.Introspector.decapitalize(类名)通过de capitalization将类名映射到XML名称.

decapitalize方法的JavaDoc 说明了这一点:

获取字符串并将其转换为普通Java变量名称大小写的实用方法.这通常意味着将第一个字符从大写转换为小写,但在(异常)特殊情况下,当有多个字符并且第一个和第二个字符都是大写时,我们不管它.因此,"FooBah"变为"fooBah","X"变为"x",但"URL"保持为"URL".

实施是违反规范还是我误解了什么?

java jaxb

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

标签 统计

git ×2

java ×2

git-svn ×1

grails ×1

grails-orm ×1

hadoop ×1

jaxb ×1

kdiff3 ×1

maven ×1

maven-shade-plugin ×1