从源代码 11.0 编译 netbeans 时出现问题

问题描述 投票:0回答:3

我正在尝试从源代码构建 Netbeans 11.0,但遇到了一些问题。首先,我尝试使用 JDK 13.02 构建 netbeans 11.0,但出现了一些问题,我认为 JDK 版本不兼容,所以我下载了 JDK 11.0.6 版本,但发生了同样的错误。所以,我下载了 JDK 8u241 版本,编译似乎终于成功了,但是,经过几分钟的编译,下一个有趣的错误,这就是我来这里寻求帮助的原因。

BUILD FAILED
C:\Program Files\Netbeans\nbbuild\build.xml:514: The following error occurred while executing this line:
C:\Program Files\Netbeans\nbbuild\build.xml:509: The following error occurred while executing this line:
C:\Program Files\Netbeans\nbbuild\build.xml:556: The following error occurred while executing this line:
C:\Program Files\Netbeans\nb\updatecenters\build.xml:44: exec returned: 1

Total time: 32 minutes 28 seconds

我还包含了它显示的 xml 档案的代码行。

C:\Program Files\Netbeans bbuild uild.xml:514 :

513   <target name="build-clusters" depends="init">
514       <run-depend-build clusters-to-build="${nb.clusters.list}"/> 
515   </target>

C:\Program Files\Netbeans bbuild uild.xml:509:

506   <macrodef name="run-depend-build">
507      <attribute name="clusters-to-build"/>
508      <sequential>
509         <repeat target="build-one-cluster" name="one.cluster.name" values="@{clusters-to-build}" /> 
510      </sequential>
511   </macrodef>

C:\Program Files\Netbeans bbuild uild.xml:556:

537   <target name="build-one-cluster" unless="${one.cluster.name}-is-built" depends="build-one-cluster-check">
538      <echo message="Building ${one.cluster.name} modules"/>
539      <resolve name="one-cluster-modules" value="${one.cluster.name}"/>
540      <resolve name="one-cluster-dependencies" value="${one.cluster.name}.depends"/>
541      <echo>${one-cluster-modules}</echo>
542      <echo>Dependencies: ${one-cluster-dependencies}</echo>
543      <insert-module-all-targets/> <!-- we are in a subproject, so need to reinsert the targets... XXX <antcall> and thus <repeat> apparently reparses the Ant script from disk! -->
544      <antcall target="build-one-cluster-dependencies" inheritAll="false">
545        <param name="one.cluster.dependencies" value="${one-cluster-dependencies}"/>
546        <param name="one.cluster.name" value="${one.cluster.name}"/>
547        <param name="ext.binaries.downloaded" value="true"/>
548      </antcall>
549      <mkdir dir="${netbeans.dest.dir}"/>
550      <nbmerge failonerror="${stop.when.broken.modules}" 
551               dest="${netbeans.dest.dir}" 
552               topdir="${nb_all}" 
553               fixedmodules="${one-cluster-modules}"
554               builtmodulesproperty="${built.modules.property}" 
555               targetprefix="all-" 
556               mergedependentmodules="false">
557      </nbmerge>
558      <touch file="${netbeans.dest.dir}/${one.cluster.name}.built"/>
559   </target>

C:\Program Files\Netbeans b\updatecenters uild.xml:44 :

44   <exec executable="${java.home}/bin/keytool" failonerror="true">
45           <arg value="-exportcert"/>
46           <arg line="-keystore ${netbeans.bundled.ks}"/>
47           <arg line="-alias netbeans-bundled"/>
48           <arg line="-storepass ${netbeans.bundled.ks}"/>
49           <arg line="-file ${netbeans.bundled.cert}"/>
50   </exec>

PS1:我知道有二进制版本,而且更容易,但我很固执,我想编译源码版本LOL

PS2:我更改了以下环境变量:JAVA_HOME、JAVA_PATH、ANT_HOME、PATH。

java netbeans build ant
3个回答
1
投票

使用 Ant 1.10.2 和 OpenJDK 1.8_322 编译 netbeans-12.6-source.zip 源代码时遇到了这些完全相同的构建错误。我决定尝试 Ant 1.10.12(目前最新),发现通过将我的 (Windows 10)%PATH% 上的 ANT_HOME 从旧的 1.10.2 路径切换到新的 1.10.12 路径,以某种方式修复了错误。不确定 Ant 1.10.2 和 1.10.12 之间有什么区别,但是源代码构建中的某些东西肯定使用了 1.10.2 中不存在的新 Ant 功能。


0
投票

很难根据提供的信息说明您遇到问题的原因,但我遵循了 从源代码构建 Windows 10 上的 NetBeans 11.3 说明并且一切正常:

因此,简单地记录我所做的事情可能更有帮助,您可以解决任何差异:

  • 从 GitHub 下载并解压 NetBeans 11.3 源代码到
    D:\Downloads\NetBeans source\netbeans-master
    .
  • 下载 Ant 1.10.7 并解压到
    C:\ApacheAnt
    .
  • 我(错误地!)将 ANT_HOME 设置为
    C:\ApacheAnt
    而不是
    C:\ApacheAnt\bin
    ,但这似乎并不重要。
  • 设置JAVA_HOME
    C:\Java\jdk1.8.0_221
    ,并确保它是
    PATH
    上唯一的JDK。
  • 打开命令提示符窗口并提交以下内容:
D:

cd D:\Downloads\NetBeans source\netbeans-master

C:\ApacheAnt\bin\ant build

备注:

  • 从源代码构建 NetBeans 说明“安装 Java 开发工具包的 LTS 版本”,因此实际上您唯一的选择是 JDK 8 或 JDK 11。
  • 构建 NetBeans 会向控制台生成大量输出,因此最好将输出重定向到文件。这会加快速度,如果您需要检查构建,将会很有用。
  • 我没有
    JAVA_PATH
    环境变量。
  • Ant 文档 指出“我们建议使用 1.10.x,除非在构建过程中要求您使用 Java8 之前的 Java 版本。”,因此请避免使用 Ant 1.9.x.

如果您仍然遇到问题,请使用以下信息更新您的问题:

  • 您对
    JAVA_HOME
    ANT_HOME
    的设置。
  • 指向您构建 NetBeans 所遵循的说明的链接。
  • 指向您用于下载 NetBeans 源代码的页面的链接。
  • 从控制台提交
    java -version
    的输出。

0
投票

我在使用 jdk-19 构建时遇到了同样的问题。改成jdk-17就好了 Gradle 工具是使用 Gradle 7.4 构建的,不支持 Java 19。 https://github.com/apache/netbeans/discussions/4801

© www.soinside.com 2019 - 2024. All rights reserved.