【问题标题】:Is there a way to override build and dist directories that Netbeans project system uses on command line?有没有办法覆盖 Netbeans 项目系统在命令行上使用的 build 和 dist 目录?
【发布时间】:2011-10-19 16:34:48
【问题描述】:

我有几个 Netbeans 项目,它们之间存在依赖关系。默认情况下,netbeans 在构建时会在项目根文件夹下创建 build 和 dist 文件夹。我能够使用相对路径将其更改为项目外部的公共文件夹。我所要做的就是更改 nbproject/project.properties 文件中的 build.dir 和 dist.dir 属性。当我在 IDE 下构建时,在项目文件中指定的公共文件夹下一切正常。

我们有提升构建过程,期望在特定构建文件夹下生成所有生成的类文件(jar 文件等)。该文件夹会根据用户为整个系统调用配置脚本的方式而变化。

假设这个目录在 shell 环境变量 BUILD_ROOT 中可用。 我想知道是否有一种方法可以在调用构建时覆盖 project.properties 在 ant 命令行上指定的 build.dir 和 dist.dir。这样我就可以重用相同的构建系统并在我想要的地方生成二进制文件,而无需更改 project.properties 文件。

目前,我们正在维护单独的 ant 构建脚本,用于提升和 IDE 构建。

感谢任何指点。

谢谢
视频人

【问题讨论】:

    标签: netbeans build project overriding


    【解决方案1】:

    我想通了。 Ant 允许您在命令行上使用 -Dpropname=value 定义属性。一旦为属性分配了值,Ant 将忽略它在 xml/.properties 文件中遇到的对该变量的任何分配。

    1) 首先我编辑了 nbproject/project.properties 文件并为顶层构建目录添加了一个变量。然后我改变了 build.dir 和 dist.dir 来使用这个变量。
    buildroot.dir=../../out
    build.dir=${buildroot.dir}/myprojname

    dist.dir=${buildroot.dir}/dist
    2)然后我确保它在 Netbeans 下工作。当您进入项目的 Netbeans 属性面板时,它显示正确的目录值。

    3) 在 Makefile 中添加了一个目标来调用这个项目,如下所示。
    ant -f build.xml -Dbuildroot.dir=$(BUILD_ROOT)/java/out

    这能够在主构建目录中的 Linux 构建服务器上构建我的目标。基本上源文件夹是干净的,没有任何与构建相关的残余。

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 2014-02-01
      • 2014-07-18
      • 2011-06-23
      • 2015-04-18
      • 2020-08-29
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多