2016-04-22 22 views
0

Ich habe ein kleines Dienstprogramm, in Java, geschrieben mit Netbeans als "Maven-Projekt" (das kleine Symbol auf dem Projekt hat das stilisierte "m" darüber). Ich möchte dieses Dienstprogramm und die Bibliotheken, von denen es abhängt, als JAR-Datei packen; Ich möchte, dass die JAR-Datei die erforderlichen Laufzeitbibliotheken enthält, sodass ich sie nicht separat verpacken muss.Erstellen Desktop-Glas von Netbeans/Maven-Projekt

Die Netbeans-Anweisungen sagen, dass, wenn ich Build ausführen, ich 'Dist' und 'Lib' Verzeichnisse unter dem Projekt-Verzeichnis erstellt haben, und das (seit ich die Hauptklasse in den Projekteigenschaften festgelegt habe), Ich werde es in meiner Manifest-Datei angeben lassen. Nichts davon ist passiert; Das Projekt wird unter IDE erstellt und ausgeführt, aber es erstellt ein Jar, das nur die Klassen der Dienstprogramme enthält, keine Bibliotheksklassen, das Manifest hat nicht meine Hauptklasse und die Bibliotheksklassen befinden sich nicht im Jar.

Liegt das daran, dass es sich um ein Maven-Projekt anstelle eines Standard-Netbeans-Java-Projekts handelt? Wie kann ich das mit einem Maven-Projekt in Netbeans machen?

-

Nach dem Hinzufügen der Maven-Montage-Plugin, wie vorgeschlagen, die Konsolenausgabe von einem „sauberen und bauen“ sieht wie folgt aus:

cd C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_07" M2_HOME=C:\\devTools\\apache-maven cmd /c "\"\"C:\\devTools\\apache-maven\\bin\\mvn.bat\" -DskipTests=true 
-Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.1\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 clean install\"" Scanning for projects... 

------------------------------------------------------------------------ Building OlbUserLoad 1.0-SNAPSHOT 
------------------------------------------------------------------------ 

--- maven-clean-plugin:2.4.1:clean (default-clean) @ OlbUserLoad --- Deleting C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target 

--- maven-resources-plugin:2.5:resources (default-resources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. Copying 1 resource Copying 0 resource 

--- maven-compiler-plugin:2.0.2:compile (default-compile) @ OlbUserLoad --- Compiling 1 source file to C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\classes 

--- maven-resources-plugin:2.5:testResources (default-testResources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. skip non existing resourceDirectory C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\src\test\resources 

--- maven-compiler-plugin:2.0.2:testCompile (default-testCompile) @ OlbUserLoad --- Nothing to compile - all classes are up to date 

--- maven-surefire-plugin:2.10:test (default-test) @ OlbUserLoad --- Tests are skipped. 

--- maven-jar-plugin:2.3.2:jar (default-jar) @ OlbUserLoad --- Building jar: C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar 

--- maven-install-plugin:2.3.1:install (default-install) @ OlbUserLoad --- Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.jar Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\pom.xml to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.pom 
------------------------------------------------------------------------ BUILD SUCCESS 
------------------------------------------------------------------------ Total time: 2.155s Finished at: Fri Apr 22 10:15:28 EDT 2016 Final Memory: 17M/152M 
------------------------------------------------------------------------ 

Ich hoffe, dass hilft uns, Figur was noch fehlt.

Antwort

2

Fügen Sie dieses Plugin in Ihre .pom-Datei ein. Dies bedeutet, dass Maven Ihre Anwendung mit den Abhängigkeiten zusammenstellen muss.

Danach in Netbeans bauen Sie Ihr Projekt und Sie werden das Glas mit Abhängigkeiten sehen.

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>Your Main Class</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals>       
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Siehe: Creating a Java Maven Project in NetBeans IDE 7.4

+0

ich scheine nicht ein "Run Maven Install" zu haben - muss ich etwas in der POM, das ermöglichen? – arcy

+0

@arcy Sorry, Netbeans hat das nicht, das könnte Eclipse sein. Siehe mein Update der .pom-Datei, Sie müssen tatsächlich Ausführungen in die Pom-Datei hinzufügen. Danach verwenden Sie einfach die Build-Schaltfläche, um Ihr Projekt zu erstellen. Sie werden ein JAR mit Abhängigkeiten in Ihrem Zielordner sehen. –

+0

danke, ich hatte das in einem anderen Post gefunden, obwohl ich auch entdeckt habe, "compile assembly: single" auszuführen, indem ich mit der rechten Maustaste auf das Projekt klicke und "Custom - goals" wähle. Ich habe bemerkt, dass der Build-Button jetzt das große große Glas produziert, aber es hat eine etwas andere Anzahl von Bytes, je nachdem, ob es mit dem Knopf oder mit der benutzerdefinierten Befehlszeile, die ich gerade erwähnt habe, gebaut wurde. Hast du eine Idee was der Unterschied wäre? – arcy