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

标签 java jenkins netbeans continuous-integration

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

native 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.

还有从 project.xml 派生的 build-impl.xml,我也想重新生成它。

最佳答案

解决此问题的方法是在项目中包含并引用所需的库。例如:

  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 的情况下进行构建。

关于java - Netbeans 从命令行更新生成的项目文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52648608/

相关文章:

jakarta-ee - glassfish-resources.xml 被 NetBeans 8.0.1 忽略了吗?

java - 默认构造函数使用 null 调用 InterfaceConstructor

java - Mockito 中的模拟类正在调用什么构造函数(如果有)?

使用模式和匹配器的 Java 正则表达式

java.lang.ClassCastException : java. lang.Integer 无法转换为 java.math.BigInteger HTTP 状态 500

docker - Jenkins:在Windows上构建并推送Docker镜像

java - 如何让我的 java webservice 客户端在执行时获取并解析 WSDL?

ruby-on-rails - ci_reporter 1.9.2 + minitest 4.7.5 = 没有 xml 报告

docker - apt-get install apt-transport-https 在 Docker 中失败

java - oAuth 2 实现 java