我使用shade maven插件来构建我的项目,以便它的所有依赖项都包含在一个jar中(这使得在Hadoop上运行它更容易).默认情况下,Shade似乎排除了我的测试代码,这是可以理解的.由于我想对我的集群运行集成测试,我希望设置另一个配置文件来为此目的构建一个单独的jar.有没有办法配置这个插件还包括测试代码?
通常当我做差异时,我想在提交之前编辑我的本地文件.这在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) 我的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) 我正在尝试将SVN repo转换为多个git repos.到目前为止,我一直在使用git svn clone svn_repo_project_pathSVN中的每个项目.我注意到git似乎没有遵循svn复制操作,因此生成的历史比我预期的要简单得多.假设我的SVN repo看起来像这样:
根
项目b和c在最近复制parent-proj的重组计划与最终从自己的老位置删除它们下根的意图的一部分.当我这样做git svn clone http://svnhost/parent-proj所产生的git仓库丢失所有源自历史/b和/c之前的举动.
这是git-svn的限制还是有一些方法可以让这个历史出现在我的回购中?根据我的有限研究,似乎使用获取已使用git-svn重命名的SVN repo的完整历史记录中filter-branch描述的命令可能有效,尽管在我的情况下有多个父项可能使事情复杂化.可以首先克隆整个仓库,然后从中拆分新的仓库(使用filter-branch?)是一种更好的方法吗?
我正在使用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".
实施是违反规范还是我误解了什么?