我正在尝试使用Java执行SVN复制操作(从分支创建标记)。
我收到以下异常。
“线程中的异常”主“java.lang.NullPointerException
at org.tigris.subversion.svnant.SvnFacade.getFacade(Unknown Source)
at org.tigris.subversion.svnant.SvnFacade.getSetting(Unknown Source)
at org.tigris.subversion.svnant.SvnFacade.getDateFormatter(Unknown Source)
at org.tigris.subversion.svnant.commands.SvnCommand.getDateFormatter(Unknown Source)
at org.tigris.subversion.svnant.commands.SvnCommand.getRevisionFrom(Unknown Source)
at org.tigris.subversion.svnant.commands.Copy.setRevision(Unknown Source)
at svnOperation.createTags.commitTags(createTags.java:55)
在svnOperation.createTags.main(createTags.java:23)“
我正在使用最新的SVN JAR文件。
有人可以建议如何纠正这个或我在这里做的错误。
这是我的代码:
Project p = new Project();
p.setProperty("username", "automation");
p.setProperty("password", "automation");
p.setProperty("javahl", "true");
p.setProperty("javahl", "true");
SvnTask svn = new SvnTask();
Copy C1 = new Copy();
C1.setDescription("Creating tags");
C1.setSrcUrl(new SVNUrl("SrcUrl"));
C1.setDestUrl(new SVNUrl("DestUrl"));
C1.setMessage("message");
C1.setRevision("1234");
C1.setProject(p);
svn.addCopy(C1);
svn.setProject(p);
svn.execute();
答案 0 :(得分:0)
SvnAnt旨在从Ant脚本中使用。但是,您似乎正在尝试使用Java代码与Subversion进行交互。
SVNKit是从Java应用程序中访问Subversion功能的更好方法。
以下是创建Subversion标记的示例:
SVNCopyClient copyClient =
SVNClientManager.newInstance().getCopyClient();
SVNURL srcURL = SVNURL.parseURIEncoded("http://example.com/repos/trunk");
SVNURL dstURL = SVNURL.parseURIEncoded("http://example.com/repos/tags/tag");
SVNCopySource copySource =
new SVNCopySource(SVNRevision.HEAD, SVNRevision.HEAD, srcURL);
copyClient.doCopy(new SVNCopySource[] {copySource}, dstURL,
false, false, true, "message", null);
有关详情,请参阅Getting Started With SVNKit。