4

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

添加库的典型方法(根据我已经浏览过的 Netbeans 文档)最终只是对我来说是本地的。任何检查我的项目的人最终都会错过我所需的库。

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

那么,我如何告诉 Netbeans 选择一个 jar 作为库并将其包含在我的项目中,以便 Subversion 能够处理它?

4

7 回答 7

2

有几种方法可以解决这个问题。

A. 当你定义你的库时,使用一个公共位置的路径。在每个人的机器上都相同的位置 - 例如与第三方应用程序一起安装到 Program Files 或 /usr/local/ 的 JAR 的位置或网络驱动器运行良好。

然后,当他们签出代码时,路径仍然是正确的,他们不必在他们的 Netbeans 工作区上定义库。

B. 编辑您的 project.properties 文件以使用相对路径。打开您的 project.properties 文件并查找“ libs.LIBRARY_NAME.classpath=...”。如果未定义库,这将是使用的“默认”位置。

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

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

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

于 2008-11-13T18:23:40.113 回答
2

NetBeans 6.5 中有一个新功能(项目中基于变量的路径),这应该会使这更容易。

http://wiki.netbeans.org/NewAndNoteWorthyNB65#section-NewAndNoteWorthyNB65-VariableBasedPathsInJ2SEJ2EEProjects了解详情。请注意,屏幕截图包括库定制器中的变量引用。

于 2008-12-23T21:01:55.483 回答
1

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

[我现在正在寻找对此的参考。当我找到它时,我会编辑这个答案。]

于 2008-11-13T13:18:46.310 回答
1

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


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

于 2010-09-27T18:37:24.880 回答
1

将你的 lib/jars 打包到你的项目中的一种简单方法是,subversion“只处理它”,这样你就可以使用所有准备编译的附加库来获取它,然后通过“shared”将它们全部包含在你的项目目录下库”选项通过管理库文件夹。

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

使用 .\lib 中新添加的库提交项目,您应该能够从任何地方签出和构建,并且知道您将拥有与上次构建和提交时相同的库(相同版本)。

我不知道这个功能在 NetBeans 中已经存在多久了。有关更多详细信息,请参阅:

http://netbeans.org/kb/docs/java/project-setup.html#projects-shared-libraries

于 2010-11-05T21:58:57.983 回答
0

我最终只是下载了我自己的设置并将它们放在我的本地驱动器上用于这个项目。我将我的 Netbeans 设置为查看那里并警告其他人我做了什么......最终,我们将不得不做一些更具可扩展性的事情...... :-)

于 2008-12-23T20:18:20.330 回答
0

好的,我现在转移到的工作解决方案是从 jar 中提取类文件并将它们转储到 Source Packages 区域。然后这一切都被提交到存储库,并且还避免了在部署阶段处理单独的“lib”目录。

这个解决方案完成了我正在寻找的一切,但我觉得这样做真的很脏。它看起来非常糟糕和错误...... :-)

于 2009-10-30T14:21:58.593 回答