2017-09-15 2 views
2

Nous utilisons Netbeans pour générer nos fichiers de construction Ant avec quelques petits ajustements. Cela nous permet de construire nos projets à l'intérieur de Netbeans et de lancer la fourmi sur la ligne de commande pour construire nos projets en dehors de Netbeans. Ce dernier est utile pour des choses telles qu'une reconstruction complète ou une construction et un test continus de Jenkins. Nous personnalisons nos fichiers build.xml selon les besoins et cela fonctionne bien pour nous avec Netbeans 8.2 et les versions antérieures, mais avec Netbeans pre-9 (versions Dev incluant 201708280001), Netbeans a commencé à casser nos builds lors de l'exécution sur la ligne de commande.Netbeans Dev (9.x) Les projets Java ne seront pas construits en dehors de Netbeans

Nous obtenons l'erreur suivante:

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 

Lors de la construction à l'intérieur Netbeans, il fonctionne correctement. Si je parcours manuellement tous les fichiers build-impl.xml, je peux supprimer les références de chemin de module et la construction fonctionne correctement sur la ligne de commande et sur Netbeans, mais Netbeans réintroduira éventuellement les paramètres de chemin de module. Donc, ce n'est pas une solution satisfaisante à long terme.

J'ai essayé d'effectuer la mise à niveau vers la dernière version de Ant (1.9.9) et Netbeans Dev, mais cela n'a eu aucun effet. Je suppose qu'il ya une bibliothèque que Netbeans apporte avec sa version de Ant qui n'est pas présente dans mon stock Ant 1.9.9, mais je n'ai aucune idée de quoi il s'agit.

Est-ce que quelqu'un a trouvé une solution qui permet à Ant de construire des projets Netbeans correctement à partir de la ligne de commande?

Update 1

avec Ant Essayé 1.10.1 avec les mêmes résultats.

Mise à jour 2

L'exécution de la ligne de commande Ant sous Java 9 n'a pas résolu le problème.

Mise à jour 3

Isolé mon test à un seul projet (ORCB) et fait en sorte qu'il a couru sous Java9. Échoue quand même:

[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 

Notez les avertissements concernant la source 1.6, qui est un nouvel avertissement dans Java9. Ceci est le résultat de la nécessité de construire notre code afin qu'il puisse fonctionner sous des machines JVM plus anciennes (nous ne pouvons pas pousser avec succès nos clients à mettre à niveau).

build.sh se lit comme suivants:

$ 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 

Note: les références de la plate-forme sont utilisés pour nous assurer que nous construisons correctement contre une version plus ancienne de Java.

a ouvert un billet avec Netbeans: https://netbeans.org/bugzilla/show_bug.cgi?id=271487

+0

Quelle est votre version java ('java -version') sur la ligne de commande où vous obtenez cette erreur et quelle est la version java du netbean? – nullpointer

+0

Ant sur la ligne de commande s'exécute sous Java 1.8.0_73. Netbeans fonctionne sous Java 9 (ea-181). Beaucoup est compilé aux normes Java 1.6. –

+0

@nullpointer a essayé d'exécuter la ligne de commande Ant sous Java 9. Reste le même problème. –

Répondre

1

Comme indiqué dans la section des commentaires, ce type d'erreur apparaît lorsque vous essayez d'exécuter votre projet basé avec la version Java publiée avant la version Java-9 construire.

Vous pouvez donc modifier la version de Java installée sur votre machine en mettant à jour le JAVA_HOME pour inclure le chemin d'accès à jdk de Java9.

Parcourez le répertoire de votre projet, confirmez en utilisant java -version et vous utiliserez la version java "9". Une fois confirmé, vous pouvez également exécuter votre projet et il devrait être résolu.

+0

Comme mentionné dans les commentaires, je l'ai fait et cela n'a pas aidé. –

+0

@StephenM Mais a-t-il échoué avec la même erreur dans ce cas aussi? – nullpointer

+0

Oui, même échec. –