我正在尝试从源代码构建 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。
使用 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 功能。
很难根据提供的信息说明您遇到问题的原因,但我遵循了 从源代码构建 Windows 10 上的 NetBeans 11.3 说明并且一切正常:
因此,简单地记录我所做的事情可能更有帮助,您可以解决任何差异:
D:\Downloads\NetBeans source\netbeans-master
.C:\ApacheAnt
.C:\ApacheAnt
而不是 C:\ApacheAnt\bin
,但这似乎并不重要。C:\Java\jdk1.8.0_221
,并确保它是PATH
上唯一的JDK。D: cd D:\Downloads\NetBeans source\netbeans-master C:\ApacheAnt\bin\ant build
备注:
JAVA_PATH
环境变量。如果您仍然遇到问题,请使用以下信息更新您的问题:
JAVA_HOME
和 ANT_HOME
的设置。 java -version
的输出。我在使用 jdk-19 构建时遇到了同样的问题。改成jdk-17就好了 Gradle 工具是使用 Gradle 7.4 构建的,不支持 Java 19。 https://github.com/apache/netbeans/discussions/4801