Java SVNKit替代方案

Java SVNKit替代方案,java,svn,Java,Svn,有人知道一个好的Java Subversion库吗?我会使用SVNKit,但只有在您正在使用的代码是开源的情况下,它才是开源的。是一个高级Java subversion库,获得Apache许可,可以根据您的需要使用多个低级实现。Subclipse使用的是该库。该问题没有说明“重用”或“链接到”或任何其他方面,这表明此人希望在其软件中嵌入SVNKit。从字面上看,“我会使用SVNKit”作为工具,那么这个问题是错误的。阅读SVNKit的许可证时,它表示可以自由使用,不受限制: 特别是它说,如果您

有人知道一个好的Java Subversion库吗?我会使用SVNKit,但只有在您正在使用的代码是开源的情况下,它才是开源的。

是一个高级Java subversion库,获得Apache许可,可以根据您的需要使用多个低级实现。Subclipse使用的是该库。

该问题没有说明“重用”或“链接到”或任何其他方面,这表明此人希望在其软件中嵌入SVNKit。从字面上看,“我会使用SVNKit”作为工具,那么这个问题是错误的。阅读SVNKit的许可证时,它表示可以自由使用,不受限制:

特别是它说,如果您的软件本身是开源的,那么您只能将svnkit作为软件的一部分重新分发。这就像GPL许可证附带的所有GNU开发者工具和编译器一样;几十年来,在那些非常重视许可证的大公司中,人们一直在开发封闭源代码软件。只要您没有将该工具的代码嵌入到自己的产品中,就可以使用该工具来制作封闭源代码软件


这是一个关于SVNKit的常见误解,我对此感到困惑,因此我给出了答案

看起来Javahl和SvnClientAdapter都使用SVNKit。那么我可以不用支付许可费就可以使用这些吗?如果是的话,是否有关于如何使用SVNClientAdapter的文档?SVNClientAdapter可以使用SVNKit,也可以使用JavaHL或svn命令行客户端,并且它是Apache许可的,因此您无需支付任何许可费。JavaHL不使用SVNKit,它使用JNI包装本机C subversion库。我不知道关于如何使用客户端适配器的任何文档,但您可以通过Google找到示例。@michael greene不确定这是真的,请参阅我在simbo1905答案中的评论。@PureSpider您不确定哪部分是真的?我在对simbo1905回答的评论中看到,SVNKit在重新分发时,包括作为另一个软件的一部分,具有严格的病毒许可证,但在我的回答或评论中,我没有提到SVNKit的重新分发。如果您愿意遵守SVNKit的条款,您可以将其与SvnClientAdapter一起使用,但如果您不愿意,您仍然可以使用其他SvnClientAdapter实现之一(JavaHL或svn可执行包装器,两者都是经过许可的)。@michael greene确实如此,我以为你说的是SVNKits许可证在使用SvnClientAdapter(Apache许可)时如何不适用。这不是真的。您提到的编译器本身就是GPL,但实际上您并没有在项目中使用它们(作为库等),而是使用它们来构建项目。此外,SVNKit使用的许可证明确规定:“[…]任何形式的重新分发必须附带有关如何获取使用SVNKit的软件的完整源代码以及使用SVNKit的软件的任何附带软件的信息。[…]”,请参阅:同意PureSpider:这个答案是对开放源码许可的一个根本性误解,以及使用开放源码许可工具生产产品和使用产品/库分发开放源码许可库之间的区别。看上面的评论似乎是故意误解了体育的问题。问题是“use”,它必须以文字形式出现(例如,简单地安装到eclipse中,作为一种工具使用,就像编译器一样)。这并不意味着“重用”是问题中软件的一部分。这是关于SVNKit的一个非常常见的问题,在我阅读许可证之前我一直对此感到困惑。@simbo1905好的,是的,我同意这个问题可以这样解释;i、 例如,“我正在使用SVNKit对我编写的一些(非开源)代码执行SVN操作。”(我有一种强烈的感觉,当我离开否决票时,这个问题的措辞不是这样的,但我认为没有编辑历史并不是谎言!)如果我能够(怀疑没有)…我将撤销否决票。对这个问题添加了这样的评论。经过深思熟虑,我认为这两种解释(对我来说)大约是50:50,最有可能抓住OP的意思。正如在对@simbo1905答案的讨论中,你需要弄清楚你是否在谈论(a)使用SVNKit对某些(非开源)代码执行SVN操作(可能是在某些私人工具或其他工具中);或者(b)在您想要发布的(非开源)代码中使用SVNKit。请注意,许可证仅在您同时分发时生效(这是对类似GPL的许可证的常见误解)--请参阅