0

我正在尝试使用 Java 执行 SVN 复制操作(从分支创建标签)。

我收到以下异常。

“线程“主”中的异常 java.lang.NullPointerException

在 org.tigris.subversion.svnant.SvnFacade.getFacade(未知来源)

在 org.tigris.subversion.svnant.SvnFacade.getSetting(未知来源)

在 org.tigris.subversion.svnant.SvnFacade.getDateFormatter(未知来源)

在 org.tigris.subversion.svnant.commands.SvnCommand.getDateFormatter(未知来源)

在 org.tigris.subversion.svnant.commands.SvnCommand.getRevisionFrom(未知来源)

在 org.tigris.subversion.svnant.commands.Copy.setRevision(未知来源)

在 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();
4

1 回答 1

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); 

有关更多信息,请参阅SVNKit 入门

于 2017-05-02T14:08:08.700 回答