2017-09-15 126 views
2

我们使用Netbeans生成我们的Ant构建文件,并进行一些小的调整。这使我们能够在Netbeans中构建我们的项目,并在命令行上运行ant以在Netbeans之外构建我们的项目。后者对于完成重建或Jenkins连续构建和测试等事情很有用。我们可以根据需要定制我们​​的build.xml文件,这对Netbeans 8.2和之前的版本非常有用,但是在Netbeans pre-9(Dev版本包括201708280001)时,Netbeans在运行时已经开始打破我们的构建在命令行上。Netbeans Dev(9.x)Java项目不会在Netbeans之外构建

我们得到以下错误:

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的内部建设,它工作正常。

如果我手动浏览所有build-impl.xml文件,我可以在命令行和Netbeans上正确删除模块路径引用和构建,但最终Netbeans会重新引入模块路径设置。所以,这不是一个令人满意的长期解决方案。

我试过升级到最新版本的Ant(1.9.9)和Netbeans Dev,但它没有任何效果。我假设有一些Netbeans带有它的Ant版本的库,但它并不存在于我的股票Ant 1.9.9中,但我不知道它是什么。

是否有人找到允许Ant从命令行正确构建Netbeans项目的解决方案?

更新1

试过用Ant 1.10.1具有相同的结果。

更新2

运行Java 9在命令行下蚂蚁并没有解决问题。

更新3

隔离我的测试,只有一个项目(orcb),并确保其Java9下运行。仍然失败:

[email protected] ~/hcs/orc.trunk/nb/orcb 
$ echo $JAVA_HOME 
/cygdrive/c/jdk1.9.ea 

[email protected] ~/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全文如下:

$ 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的一票: https://netbeans.org/bugzilla/show_bug.cgi?id=271487

+0

什么是你的java版本('java -version')在你得到这个错误的命令行中,以及netbean的java版本是什么? – nullpointer

+0

命令行上的Ant在Java 1.8.0_73下运行。 Netbeans在Java 9(ea-181)下运行。很多编译为Java 1.6标准。 –

+0

@nullpointer尝试在Java 9下运行命令行Ant。仍然有同样的问题。 –

回答

1

正如在评论部分中指出,这种类型的错误,当你试着和Java版本之前的Java-9版本发布执行你的基于项目来了建立。

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

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

+0

正如评论中提到的那样,我这样做并没有帮助。 –

+0

@StephenM但是在这种情况下也发生了同样的错误吗? – nullpointer

+0

是的,同样的失败。 –