首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Netbeans Dev (9.x) Java项目不会在Netbeans之外构建

Netbeans Dev (9.x) Java项目不会在Netbeans之外构建
EN

Stack Overflow用户
提问于 2017-09-15 16:41:56
回答 2查看 1.3K关注 0票数 3

我们使用Netbeans生成Ant构建文件,并进行了一些小的调整。这样我们就可以在Netbeans内部构建项目,并在命令行上运行ant来构建Netbeans之外的项目。后者对于完成重建或Jenkins连续构建和测试非常有用。

我们确实根据需要定制了我们的build.xml文件,这在Netbeans 8.2和以前的版本中非常适用,但是使用Netbeans的前9版(开发版本包括201708280001),Netbeans在命令行上运行时已经开始破坏我们的构建。

我们得到以下错误:

代码语言:javascript
运行
复制
BUILD FAILED
C:\Users\Stephen\hcs\orc.trunk\nb\build.xml:278: The following error occurred while executing this line:
C:\Users\Stephen\hcs\orc.trunk\nb\build.xml:229: The following error occurred while executing this line:
C:\Users\Stephen\hcs\orc.trunk\nb\ServerLibWOC\nbproject\build-impl.xml:1623: Unknown attribute [modulepath]

Total time: 2 minutes 35 seconds

在Netbeans内部构建时,它工作正常。

如果我手动查看所有的buil-in-.xml文件,我可以删除modulepath引用,并且构建在命令行和Netbeans上都能正常工作,但最终Netbeans将重新引入modulepath设置。因此,这不是一个令人满意的长期解决办法。

我尝试过升级到Ant (1.9.9)和Netbeans的最新版本,但没有效果。我假设Netbeans在它的Ant版本中提供了一些库,但我不知道它是什么。

有没有人找到了一种解决方案,允许Ant从命令行正确地构建Netbeans项目?

更新1

使用Ant1.10.1进行了尝试,结果相同。

更新2

在Java 9下运行命令行Ant不能解决这个问题。

更新3

将我的测试隔离到一个项目(orcb),并确保它在Java9下运行。仍然失败:

代码语言:javascript
运行
复制
Stephen@Stephen-VPC ~/hcs/orc.trunk/nb/orcb
$ echo $JAVA_HOME
/cygdrive/c/jdk1.9.ea

Stephen@Stephen-VPC ~/hcs/orc.trunk/nb/orcb
$ java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

$ ./build.sh
Buildfile: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build.xml

-pre-init:

-init-private:

-init-user:

-init-project:

-init-macrodef-property-impl:

-set-source-dir:

-init-macrodef-property:

-init-modules-supported:

-do-init:

-post-init:

-init-check:

-init-ap-cmdline-properties:

-init-macrodef-modulename:

-init-source-module-properties:

-init-macrodef-javac-with-module:

-init-which-javac-to-use:

-init-macrodef-javac-with-processors.java.1.8:

-init-macrodef-javac-with-processors.java.9:

-init-macrodef-javac-with-processors:

-init-macrodef-javac-without-processors.java.1.8:

-init-macrodef-javac-without-processors.java.9:

-init-macrodef-javac-without-processors:

-init-macrodef-javac:

-init-macrodef-test-impl:

-init-macrodef-junit-init:

-init-test-properties:

-init-macrodef-junit-prototype-with-module:

-init-macrodef-junit-prototype-without-module:

-init-macrodef-junit-single:

-init-macrodef-junit-batch:

-init-macrodef-junit:

-init-macrodef-junit-impl:
Trying to override old definition of task http://www.netbeans.org/ns/j2se-project/3:test-impl

-init-macrodef-testng:

-init-macrodef-testng-impl:

-init-macrodef-test:

-init-macrodef-junit-debug-impl:

-init-macrodef-test-debug-junit:

-init-macrodef-testng-debug:

-init-macrodef-testng-debug-impl:

-init-macrodef-test-debug-testng:

-init-macrodef-test-debug:

-init-debug-args:

-init-macrodef-nbjpda:

-init-macrodef-debug:

-init-macrodef-java-with-module:

-init-macrodef-java-with-unnamed-module:

-init-macrodef-java-without-module:

-init-macrodef-java:

-init-presetdef-jar:

-init-ap-cmdline-supported:

-init-ap-cmdline:

init:

-deps-clean-init:

deps-clean:

-do-clean:
   [delete] Deleting directory C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build

-post-clean:

clean:

-pre-init:

-init-private:

-init-user:

-init-project:

-init-macrodef-property-impl:

-set-source-dir:

-init-macrodef-property:

-init-modules-supported:

-do-init:

-post-init:

-init-check:

-init-ap-cmdline-properties:

-init-macrodef-modulename:

-init-source-module-properties:

-init-macrodef-javac-with-module:

-init-which-javac-to-use:

-init-macrodef-javac-with-processors.java.1.8:

-init-macrodef-javac-with-processors.java.9:

-init-macrodef-javac-with-processors:

-init-macrodef-javac-without-processors.java.1.8:

-init-macrodef-javac-without-processors.java.9:

-init-macrodef-javac-without-processors:

-init-macrodef-javac:

-init-macrodef-test-impl:
Trying to override old definition of task http://www.netbeans.org/ns/j2se-project/3:test-impl

-init-macrodef-junit-init:

-init-test-properties:

-init-macrodef-junit-prototype-with-module:

-init-macrodef-junit-prototype-without-module:

-init-macrodef-junit-single:

-init-macrodef-junit-batch:

-init-macrodef-junit:

-init-macrodef-junit-impl:
Trying to override old definition of task http://www.netbeans.org/ns/j2se-project/3:test-impl

-init-macrodef-testng:

-init-macrodef-testng-impl:

-init-macrodef-test:

-init-macrodef-junit-debug-impl:

-init-macrodef-test-debug-junit:

-init-macrodef-testng-debug:

-init-macrodef-testng-debug-impl:

-init-macrodef-test-debug-testng:

-init-macrodef-test-debug:

-init-debug-args:

-init-macrodef-nbjpda:

-init-macrodef-debug:

-init-macrodef-java-with-module:

-init-macrodef-java-with-unnamed-module:

-init-macrodef-java-without-module:

-init-macrodef-java:

-init-presetdef-jar:

-init-ap-cmdline-supported:

-init-ap-cmdline:

init:

-deps-jar-init:

deps-jar:

-check-automatic-build:

-clean-after-automatic-build:

-verify-automatic-build:

-pre-pre-compile:
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes

-add-build-versions-status:
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes

-pre-compile:

-copy-persistence-xml:

-compile-depend:

-do-compile:
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\empty
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\generated-sources\ap-source-output
    [javac] Compiling 1058 source files to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
    [javac] warning: [options] source value 1.6 is obsolete and will be removed in a future release
    [javac] warning: [options] target value 1.6 is obsolete and will be removed in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 3 warnings
     [copy] Copying 35 files to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes

-init-check-cobertura:

-instrument-coverage:

-post-compile:

compile:

-pre-jar:

-check-module-main-class:

-set-module-main-class:

-pre-pre-jar:
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist

-do-jar-create-manifest:

-do-jar-copy-manifest:
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build

-do-jar-set-mainclass:

-do-jar-set-profile:

-do-jar-set-splashscreen:

-do-jar-jar:

-init-macrodef-copylibs:

-do-jar-copylibs:
 [copylibs] Copy libraries to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist\lib.
 [copylibs] Building jar: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist\ORMC.jar
     [echo] To run this application from the command line without Ant, try:
     [echo] java -jar "C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist\ORMC.jar"

-do-jar-delete-manifest:

-do-jar-without-libraries:

-do-jar-with-libraries:

-post-jar:
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist\signed
      [jar] Building jar: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\dist\signed\ORMC.jar

-do-jar:

-pre-deploy:

-check-jlink:

-do-deploy:

-post-deploy:

deploy:

-check-filename-prop:

-set-jnlp-filename-custom:

-set-jnlp-filename-default:

-init-filename:

-test-jnlp-enabled:

-create-tmp-manifest:

-copy-tmp-manifest:
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build

-security-props-check:

-test-signjars-task-available:

-unavailable-signjars-task:

-check-signing-possible:

-set-mixed-code-properties:

-init-macrodef-extend-manifest:

-add-trusted-only-attribute:

-add-trusted-library-attribute:

-check-manifest-codebase:

-extend-manifest-codebase-copy:

-extend-manifest-codebase-web:

-extend-manifest-codebase-other:

-extend-manifest-codebase-override-warning:

-extend-manifest-codebase-override:

-check-manifest-permissions:

-extend-manifest-permissions-sandbox:

-extend-manifest-permissions-all:

-extend-manifest-permissions-override:

-extend-manifest-application-name:

-check-manifest-application-library-allowable-codebase:

-extend-manifest-application-library-allowable-codebase-copy:

-extend-manifest-application-library-allowable-codebase-web:

-extend-manifest-application-library-allowable-codebase-other:

-extend-manifest-application-library-allowable-codebase-override-warning:

-extend-manifest-application-library-allowable-codebase-override:

-check-manifest-caller-allowable-codebase:

-extend-manifest-caller-allowable-codebase-copy:

-extend-manifest-caller-allowable-codebase-web:

-extend-manifest-caller-allowable-codebase-other:

-extend-manifest-caller-allowable-codebase-override-warning:

-extend-manifest-caller-allowable-codebase-override:

-add-manifest-security:

-test-jnlp-type:

-do-jar-applet:

-do-jar-jnlp-application:

-do-jar-jnlp-component:

-do-jar-jnlp:

jnlp:

jar:

-pre-init:

-init-private:

-init-user:

-init-project:

-init-macrodef-property-impl:

-set-source-dir:

-init-macrodef-property:

-init-modules-supported:

-do-init:

-post-init:

-init-check:

-init-ap-cmdline-properties:

-init-macrodef-modulename:

-init-source-module-properties:

-init-macrodef-javac-with-module:

-init-which-javac-to-use:

-init-macrodef-javac-with-processors.java.1.8:

-init-macrodef-javac-with-processors.java.9:

-init-macrodef-javac-with-processors:

-init-macrodef-javac-without-processors.java.1.8:

-init-macrodef-javac-without-processors.java.9:

-init-macrodef-javac-without-processors:

-init-macrodef-javac:

-init-macrodef-test-impl:
Trying to override old definition of task http://www.netbeans.org/ns/j2se-project/3:test-impl

-init-macrodef-junit-init:

-init-test-properties:

-init-macrodef-junit-prototype-with-module:

-init-macrodef-junit-prototype-without-module:

-init-macrodef-junit-single:

-init-macrodef-junit-batch:

-init-macrodef-junit:

-init-macrodef-junit-impl:
Trying to override old definition of task http://www.netbeans.org/ns/j2se-project/3:test-impl

-init-macrodef-testng:

-init-macrodef-testng-impl:

-init-macrodef-test:

-init-macrodef-junit-debug-impl:

-init-macrodef-test-debug-junit:

-init-macrodef-testng-debug:

-init-macrodef-testng-debug-impl:

-init-macrodef-test-debug-testng:

-init-macrodef-test-debug:

-init-debug-args:

-init-macrodef-nbjpda:

-init-macrodef-debug:

-init-macrodef-java-with-module:

-init-macrodef-java-with-unnamed-module:

-init-macrodef-java-without-module:

-init-macrodef-java:

-init-presetdef-jar:

-init-ap-cmdline-supported:

-init-ap-cmdline:

init:

-deps-jar-init:

deps-jar:

-check-automatic-build:

-clean-after-automatic-build:

-verify-automatic-build:

-pre-pre-compile:

-add-build-versions-status:
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes
     [copy] Copying 1 file to C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\classes

-pre-compile:

-copy-persistence-xml:

-compile-depend:

-do-compile:

-init-check-cobertura:

-instrument-coverage:

-post-compile:

compile:

-pre-pre-compile-test:
    [mkdir] Created dir: C:\Users\Stephen\hcs\orc.trunk\nb\orcb\build\test\classes

-pre-compile-test:

-init-test-javac-module-properties-with-module:

-init-test-module-properties-without-module:

-init-test-module-properties:

-compile-test-depend:

-do-compile-test:

BUILD FAILED
C:\Users\Stephen\hcs\orc.trunk\nb\orcb\nbproject\build-impl.xml:1660: Unknown attribute [modulepath]

Total time: 25 seconds

注意有关源1.6的警告,这是Java9中的一个新警告。这是因为需要构建我们的代码,以便它能够在旧的JVM下运行(我们无法成功地推动客户升级)。

build.sh的内容如下:

代码语言:javascript
运行
复制
$ cat build.sh
export JAVA_HOME=/cygdrive/c/jdk1.9.ea
"c:/Program Files (x86)/NetBeans Dev 201709180002/extide/ant/bin/ant" -Dplatforms.JDK32_1.6.home=c:/jdk1.6.0_43 -Dplatforms.JDK32_1.7.home=C:/jdk_1.7.0_79/ -Dlibs.CopyLibs.classpath=C:/Users/Stephen/hcs/orc.trunk/lib/netbeans/org-netbeans-modules-java-j2seproject-copylibstask.jar clean jar compile-test

注意:使用平台引用是为了确保我们对旧版本的Java进行正确的构建。

用Netbeans打开一张票:bug.cgi?id=271487

更新4

新票:https://issues.apache.org/jira/browse/NETBEANS-1106

更新5

这也会影响Netbeans 11,如果您使用的是Java1.8或更高版本的话,它甚至无法在Netbeans中正确构建。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-10 20:28:42

将问题追溯到我们自己的构建脚本中的一个问题。为了解决不同的Netbeans问题,我们定义了自己的宏:

代码语言:javascript
运行
复制
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">

在那里,对于Java1.8,我们没有处理modulepath属性,我们添加了这个属性:

代码语言:javascript
运行
复制
        <attribute default="${empty.dir}" name="modulepath"/>

这似乎解决了我们的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 20:15:44

正如注释部分所指出的那样,当您尝试使用Java-9发行版之前发布的java版本执行基于爪哇-9的项目时,会出现这种类型的错误。

因此,您可以通过更新JAVA_HOME以包括Java9的jdk路径来更改安装在机器上的Java版本。

遍历项目的目录,使用java -version确认,您将使用java版本"9“。一旦确认,您也可以执行您的项目,它应该得到解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46244201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档