Vor kurzem habe ich aufgrund von Projektbedürfnissen die Verpackung von Maven untersucht, und das Projekt muss durchgeführt werden.
1. Generieren Sie 3 Verzeichnisse /lib, /conf, /bin Verzeichnisse
2. Kompilieren und kopieren Sie alle JAR -Verzeichnisse in das /lib -Verzeichnis (einschließlich Maven's JAR -Paket und Jar im Lib -Verzeichnis sowie kompilierte JAR -Pakete).
3. Kopieren Sie alle Startskripte aus dem Projektroot -Verzeichnis /bin in das Verzeichnis /bin
4. Kopieren Sie alle Konfigurationsdateien von SRC/Main/Ressourcen nach/conf
Das Folgende ist das konfigurierte pom.xml. Ich habe alle relevanten Konfigurationen kommentiert und Sie können sie auf einen Blick verstehen. Wenn Sie den Build -Knoten in Ihr Projekt kopieren, können Sie ihn im Grunde genommen verwenden :)
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>test.common</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test.common</name> <URL> http://maven.apache.org </url> <properties> <projekt.build.sourceEncoding> utf-8 </project.build.sourceEncoding> </properties> <abhängigkeiten> <!-N hier weggelassen-> </abhängig <Recocedirectory> SRC/Main/Java </Sourcedirectory> <ressourcen> <!-Alle Dateien im Verzeichnis SRC/Main/Ressourcen in das Conf-Verzeichnis-> <Resource> <Dankitors> SRC/Main/Ressourcen-Ressourcen </DirecTory> <targetPath> $ {project.build.directory}/conf </ZielPaths> </ressource> <!--Die LIB-Direktorie}/conf </ressource> </ressources> <!-uble. LIB-Verzeichnis (einige JAR-Pakete werden möglicherweise nicht in Maven gefunden und müssen in das Lib-Verzeichnis platziert werden)-> <ressourcen> <Dankites> lib </verzeichnis> <targetPath> $ {project.build.directory}/lib </targetPath> </ressourcen> <! <Direcidory>. </Directory> <Clement> <Cladcut> **/*. Sh </include> **/*. Bat </include> </targetPath> $ {project.build.directory}/bin </targetPath> </ressourcen> </ressourcen> <Plugins> <!-Plugin für die Kompilierung-> </<-Plugin> </</ressourcen> </ressourcen> <! <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <fork>true</fork> <defaultLibBundleDir>lib</defaultLibBundleDir> <source>1.7</source> <target>1.7</target> <Codierung> utf-8 </codieren> <!-Wenn Java_Home konfiguriert ist, sollte das Folgende kostenlos verwendet werden-> <ausführbare Dateien> C:/Programmdateien (x86) /java/jdk1.8.0_91/bin/javac.exe </exekutabel> </configuration> </plugin> </plugin> <! <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <!-- Put the generated jar package in the lib directory (with all other jar packages) --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <archive> <ifest> <dadClassPath> true </addClASSPath> <classPathPrefix> lib/</classPathPrefix> </Manifest> </archive> <ausschließt> <!- Schließen Sie einige Dateien aus und setzen Sie sie nicht in das JAR-Paket. Dies dient dazu, Dateien in SRC/Main/Ressourcen auszuschließen (sie sollten im Conf -Verzeichnis platziert werden). Hier können Sie nur die ausgeschlossenen Zieldateien angeben, jedoch nicht die Quelldateien. Obwohl sie nicht perfekt sind, können sie das Ziel im Grunde genommen erreichen. -> <exklued>*. xml </exklude> <ausschließe>*. Eigenschaften </ausschließe> </ausschließt> </Konfiguration> </plugin> <!-Plugin zum Kopieren von Maven-Abhängigkeiten-> <PLUGIN> <CROUPIN> org.apache <version> 2.10 </Version> <Executions> <darsteller> <ID> Abhängigkeiten von Kopien </id> <phase> Paket </phase> <giele> <giele> Abhängigkeiten von Kopien </gara> </gielen> <configuration> <!-Kopieren Sie alle Maven-JAR-Pakete, die auf das LIB-Verzeichnis sind (so dass alle Jar-Pakete im LIB-Direktory enthalten sind). <outputDirectory> $ {project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <!-Plugin für das Kopieren von Ressourcen-> <PLUGIN> <gruppe> org. <version> 2.7 </version> <configuration> <codierung> utf-8 </codieren> </configuration> </plugin> <!-Konfigurieren Sie das Plugin, das das Quellcode-JAR generiert. <encoding>UTF-8</encoding> <!-- Configure the storage path of the source code jar file and place it in the lib directory with other jar files --> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>Führen Sie dann die Paketpaketverpackung von Maven aus. Wenn es sich um Eclipse handelt, geben Sie Paket in Project Explorer-> als> Maven Build ein und klicken Sie auf Ausführen, um zu kompilieren.
Das Start -Skript start.bat im Bin -Verzeichnis kann so geschrieben werden:
@Echo offset classPath =%Java_Home%/libset java =%Java_Home%/bin/javaset classPath =%classPath%; test.hangqingentrance
über:
Fügen Sie das Conf -Verzeichnis zu ClassPath hinzu, da das Conf -Verzeichnis Konfigurationsdateien enthält, die von SRC/Main/Ressourcen kopiert werden.
Einstellungen -djava.ext.dirs = "../ lib". Weil JAR -Pakete im Lib -Verzeichnis platziert sind.
Das obige ist der vollständige Inhalt der Methode (empfohlen) zum Konfigurieren von pom.xml, um Maven zum Verpacken von Java -Projekten zu verwenden. Ich hoffe, jeder kann Wulin.com mehr unterstützen ~