添加工作目录进行构建

时间:2014-01-02 21:16:24

标签: java netbeans netbeans-7

我无法将位于我工作目录中的依赖项添加到我的.jar中。当我尝试从命令行运行.jar时,我得到错误,说我试图访问的文件不存在。为什么netbeans不包含构建依赖项中的工作目录,这似乎是一件非常容易和明显的事情....

我只是想读取位于res / settings / settings.txt的文件。我已将我的工作目录设置为res文件夹,以便在netbeans中通过'settings / settings.txt'成功访问该文件。我试图将settings文件夹设置为库,以便将其添加到构建中,但是由于它是一个目录,因此拒绝复制它。

如何将此文件添加到构建中,以便我可以从命令行运行它?

1 个答案:

答案 0 :(得分:1)

为什么要这样?工作目录只是应用程序的“测试”位置。构建过程不是“打包”过程。

Netbeans为您提供了一个build.xml文件,您可以修改该文件以执行自定义操作,但请注意,每次构建应用程序时,都可以执行这些自定义构建操作/目标。这可能会为您的构建过程增加相当多的时间。如果您只是做了一些小改动,这可能不太可取。

然后想到两种解决方案。

  1. 您可以在build.xml文件中创建自定义构建目标,右键单击build.xml文件(在文件视图中)并选择Run Target并选择从级联菜单中获取所需的目标......从经验来看,这并不像听起来那么方便。您还可以从命令行运行build.xml文件,指定所需的目标...
  2. 制作另一个单独打包应用程序的ant脚本。这类似于第一条注释,除了您完全离开构建和包过程。
  3. 我在一个非常大的应用程序上工作,这需要花费超过15分钟来构建(完全)。我们编写了一个实用程序,它遍历了所有Netbeans项目属性并构建了自己的依赖关系图,然后生成了一个Ant构建脚本。然后我们将它包含在我们自己的打包脚本中,因此我们可以构建应用程序并在我们想要创建发布时将其打包在一个通道中。这将构建减少到3分钟(不要问为什么,它只是这样做),这也意味着我们可以从构建过程中删除对Netbeans的直接依赖。

    因此。基本答案是。 Netbeans是一个建设者,而不是打包者。为了提供这种支持,你将不得不自己写一些东西。最简单的方法是简单地编写一些Ant脚本来执行此aciton。你在哪里这取决于你。