Netbeans从命令行更新生成的项目文件

时间:2018-10-04 13:57:11

标签: java jenkins netbeans continuous-integration

我需要在Linux机器上设置本地Netbeans项目的定期拉动和构建,并且我不想在Netbeans GUI中打开该项目以使生成的文件保持最新。

本机Netbeans项目中至少可以有一个文件,该文件在不同的机器上应该是不同的:nbproject/private/private.properties。这是为Glassfish构建的Web应用程序的示例:

deploy.ant.properties.file=/home/admin/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-155092097.properties
j2ee.platform.is.jsr109=true
j2ee.server.domain=/opt/glassfish-4.1.2/glassfish4/glassfish/domains/domain1
j2ee.server.home=/opt/glassfish-4.1.2/glassfish4/glassfish
j2ee.server.instance=[/opt/glassfish-4.1.2/glassfish4/glassfish:/opt/glassfish-4.1.2/glassfish4/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
j2ee.server.middleware=/opt/glassfish-4.1.2/glassfish4
user.properties.file=/home/admin/.netbeans/8.2/build.properties

它不受版本控制,但是如果没有版本控制,Ant将无法使用在Netbeans中注册的Glassfish服务器来构建项目:

[admin@funktest v24testear]$ ant -quiet clean dist
BUILD SUCCESSFUL
Total time: 16 seconds

[admin@funktest v24testear]$ rm -f nbproject/private/private.properties

[admin@funktest v24testear]$ ant -quiet clean dist
BUILD FAILED
/home/admin/Downloads/v24test/v24testear/nbproject/build-impl.xml:156: The libs.CopyLibs.classpath property is not set up.

还有build-impl.xml源自project.xml,我也想重新生成它。

1 个答案:

答案 0 :(得分:0)

一种解决方法是在项目中包含并引用所需的lib。例如:

  1. 找到JAR文件org-netbeans-modules-java-j2seproject-copylibstask.jar,该文件通常位于具有NetBeans的计算机上的C:\Program Files\NetBeans 8.2\java\ant\extra之类的位置。
  2. 将该JAR复制到您的项目,f.x。 project/ant/org-netbeans-modules-java-j2seproject-copylibstask.jar
  3. 打开nbproject/project.properties,并在其末尾添加以下行:

    libs.CopyLibs.classpath=ant/org-netbeans-modules-java-j2seproject-copylibstask.jar
    

在项目中的lib和project.properties指向其位置的情况下,Ant应该可以在没有实际安装NetBeans的情况下进行构建。