Java 让Netbeans和Subversion与库很好地配合使用?

Java 让Netbeans和Subversion与库很好地配合使用?,java,svn,netbeans,Java,Svn,Netbeans,我很难弄清楚如何将.jar/library添加到Netbeans项目中,以便将其提交到存储库中 添加库的典型方法(根据我已经阅读过的Netbeans文档)的结果是它对我来说只是本地的。任何签出我的项目的人都会错过我所需的库 手动插入它并尝试绕过Netbeans会导致Netbeans在尝试扫描项目时挂起 那么,我如何告诉Netbeans将jar作为库,并以Subversion能够处理它的方式将其包含在我的项目中呢?这并不是对您问题的回答,而是。。。通常,您不应该在subversion存储库中包含这

我很难弄清楚如何将.jar/library添加到Netbeans项目中,以便将其提交到存储库中

添加库的典型方法(根据我已经阅读过的Netbeans文档)的结果是它对我来说只是本地的。任何签出我的项目的人都会错过我所需的库

手动插入它并尝试绕过Netbeans会导致Netbeans在尝试扫描项目时挂起


那么,我如何告诉Netbeans将jar作为库,并以Subversion能够处理它的方式将其包含在我的项目中呢?

这并不是对您问题的回答,而是。。。通常,您不应该在subversion存储库中包含这些库。通常不需要管理它们。您可能需要设置一个类似于maven的中央存储库。如果使用maven,可以在团队可访问的服务器上创建库的本地存储库。对这些库的依赖关系输入到pom.xml文件中,该文件位于subversion存储库中。现在,当团队成员从subversion签出代码时,他们都可以访问maven存储库


[我正在寻找这方面的参考资料。找到后,我将编辑此答案。]

有几种方法可以解决此问题

A.定义库时,请使用指向公共位置的路径。在每个人的机器上都是相同的位置——比如第三方应用程序安装到程序文件或/usr/local/或网络驱动器中的JAR位置

然后,当他们签出代码时,路径仍然正确,并且他们不必在Netbeans工作区中定义库

B.编辑project.properties文件以使用相对路径。打开project.properties文件并查找“
libs.LIBRARY\u NAME.classpath=…
”。如果未定义库,则将使用“默认”位置

将此更改为使用相对于项目的路径,并将jar文件存储在项目中。例如:
libs.Log4J.classpath=lib/Log4J.jar

请记住,库管理器中的库定义将覆盖此值,因此请确保它们保持同步(即,在库名称后面附加一个版本号!)


C.使用Vincent关于使用Maven之类的构建系统的建议。Maven构建过程将负责下载依赖项等。Netbeans为几种流行的构建系统提供了插件。

我只是下载了自己的套件,并将它们放在本项目的本地驱动器上。我设置了我的Netbeans查看那里,并警告其他人我做了什么。。。最终,我们将不得不做一些更具伸缩性的事情…:-)

NetBeans 6.5(项目中基于变量的路径)中有一个新特性,这将使这一点变得更容易


有关详细信息,请参阅。请注意,屏幕截图包含库定制器中的变量引用。

好的,我现在使用的工作解决方案是从JAR中提取类文件,并将它们转储到源程序包区域。然后,它将全部提交到存储库,还避免了在部署阶段处理单独的“lib”目录


这个解决方案完成了我想要的一切,但我觉得这样做真的很肮脏。它似乎坏得可怕,而且是错的…:-)

我使用NetBeans IDE 6.5.1,到目前为止,我找到的最佳解决方案是从本地主机中包含所需的库,然后将它们的路径更改为相对路径。之后,您必须手动从NetBeans中删除这些库,然后再次手动将它们从计算机中的操作系统位置复制到文件资源管理器。这样,NetBeans就可以检测到更改并将其提交到存储库



注意:我强烈建议在更新后再次清理和构建项目。

将lib/jar打包到项目中的一种简单方法是,subversion“只处理它”,这样您就可以将它与所有附加的库一起取出,并准备好编译,然后通过通过管理库文件夹选择“共享库”选项

创建新项目时,可以指定“使用专用文件夹存储库”然后使用建议的相对路径。如果现有项目,则可以编辑其属性、库类别,并浏览库文件夹。再次建议首次运行。\lib,然后提供将现有依赖项复制到该文件夹的功能。这些图形操作应该提供与James Schek的“B”答案类似的结果

在中使用新添加的lib提交项目。\lib,您应该能够从任何位置签出和生成,并且知道您将拥有与上次生成和提交时相同的lib(版本相同)

我不知道这个特性在NetBeans中已经有多长时间了。有关更多详细信息,请参阅:


是的,我不明白这怎么可以接受。我希望有人能够把我的项目从subversion中拿出来,所有附加的库都准备好编译和运行。我同意。但这似乎是不可能的。令人震惊的是,在这个时代,我们可能会遇到这个问题。我想所有像这样愚蠢的问题早就解决了…这个条目现在被我的另一个答案取代了。只是手动更改了nbproject/project.properties,它工作得非常好。