我有几个Netbeans项目,其中包含依赖项。默认情况下,netbeans在构建时在Project根文件夹下创建build和dist文件夹。我能够使用相对路径将其更改为项目外的公共文件夹。我所要做的就是在nbproject / project.properties文件中更改build.dir和dist.dir属性。当我在IDE下构建时,一切都在项目文件中指定的公共文件夹下正常构建。
我们有促销构建过程,希望在特定的构建文件夹下生成所有生成的类文件(jar文件等)。此文件夹根据用户调用整个系统的配置脚本的方式而更改。
让我们说这个目录在shell环境变量BUILD_ROOT中可用。 我想知道的是,如果有一种方法可以覆盖build.properties在调用构建时在ant命令行上指定的build.dir和dist.dir。这样我可以重用相同的构建系统并在不改变project.properties文件的情况下生成我想要的二进制文件。
目前,我们正在为促销与IDE构建维护单独的ant构建脚本。
我很欣赏任何指示。
感谢
视频人
答案 0 :(得分:0)
我想出了怎么做。 Ant允许您使用-Dpropname = value在命令行上定义属性。为属性分配值后,Ant将忽略它在xml / .properties文件中遇到的该变量的任何赋值。
1)首先,我编辑了nbproject / project.properties文件,并为toplevel build dir添加了一个变量。然后我更改了build.dir和dist.dir以使用此变量。
buildroot.dir = .. / .. /出
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构建服务器上构建我的目标。基本上源文件夹是干净的,没有任何与构建相关的遗留物。