Jak zbudować projekt Java zawierający wszystkie zależności za pomocą Mavena? Wtyczki maven-resources, maven-dependency i maven-jar
Opublikowany: 2016-11-26
Czy pracujesz nad projektem Java na poziomie korporacyjnym? Używasz pliku Maven POM.xml
do aktualizowania wszystkich zależności? Czy w swoim projekcie masz src folder
, resources folder
, lib folder
, itp.? A co, jeśli chcesz wdrożyć ten projekt na kliencie innej firmy? Jakiś inny samodzielny sprzęt?
Cóż, istnieje prosty sposób na zbudowanie i utworzenie pliku wykonywalnego projektu Java za pomocą wtyczek Maven. Spójrz na poniższy przykładowy projekt Java.

Zacznijmy i pozwól, że wyjaśnię wszystkie części projektu:
-
CrunchifyMavenBuildPlugins
to projekt Maven. Jeśli masz projekt Java i chcesz go przekonwertować na projekt Maven, postępuj zgodnie z tym samouczkiem. - Mamy dwa foldery.
src
iresources.
- Wewnątrz folderu
resources
mamy folder o nazwieScripts
, który zawiera jeden wykonywalny plik skryptu powłoki. -
CrunchifyMain.java
jest głównym punktem startowym, który zawiera w sobie metodęmain(String args[])
. - plik
pom.xml
w którym dodamy wtyczki Maven, które zbudują wykonywalny projekt .jar ze wszystkimi dołączonymi zależnościami.
Krok 1
Otwórz plik pom.xml
i dodaj poniżej pod <build>
. Uwaga: poniżej dodałem 3 wtyczki .
-
maven-resources-plugin
: Wtyczka Resources obsługuje kopiowanie zasobów projektu do katalogu wyjściowego. Główne zasoby to zasoby powiązane z głównym kodem źródłowym. -
maven-dependency-plugin:
zależności zapewnia możliwość manipulowania artefaktami. Może kopiować i/lub rozpakowywać artefakty z lokalnych lub zdalnych repozytoriów do określonej lokalizacji. -
maven-jar-plugin:
Ta wtyczka umożliwia tworzenie i podpisywanie plików jar.
Oto kompletny plik pom.xml. Głównie interesuje Cię tag <build>.
Zaktualizuj lokalizację katalogu, nazwę pliku i ścieżkę zgodnie z poniższymi potrzebami.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < / modelVersion > < groupId > CrunchifyMavenBuildPlugins < / groupId > < artifactId > CrunchifyMavenBuildPlugins < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < name > CrunchifyMavenBuildPlugins < / name > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < / properties > < dependencies > < dependency > < groupId > log4j < / groupId > < artifactId > log4j < / artifactId > < version > 2.15.0 < / version > < / dependency > < dependency > < groupId > com . googlecode . json - simple < / groupId > < artifactId > json - simple < / artifactId > < version > 1.1 < / version > < / dependency > < dependency > < groupId > axis < / groupId > < artifactId > axis < / artifactId > < version > 1.4 < / version > < / dependency > < dependency > < groupId > commons - beanutils < / groupId > < artifactId > commons - beanutils < / artifactId > < version > 1.8.3 < / version > < / dependency > < dependency > < groupId > commons - collections < / groupId > < artifactId > commons - collections < / artifactId > < version > 3.2.1 < / version > < / dependency > < dependency > < groupId > commons - configuration < / groupId > < artifactId > commons - configuration < / artifactId > < version > 1.10 < / version > < / dependency > < dependency > < groupId > commons - io < / groupId > < artifactId > commons - io < / artifactId > < version > 2.4 < / version > < / dependency > < dependency > < groupId > javax . mail < / groupId > < artifactId > mail < / artifactId > < version > 1.4.7 < / version > < / dependency > < dependency > < groupId > javax . servlet < / groupId > < artifactId > servlet - api < / artifactId > < version > 2.5 < / version > < / dependency > < dependency > < groupId > org . json < / groupId > < artifactId > json < / artifactId > < version > 20140107 < / version > < / dependency > < dependency > < groupId > axis < / groupId > < artifactId > axis - saaj < / artifactId > < version > 1.4 < / version > < / dependency > < dependency > < groupId > wsdl4j < / groupId > < artifactId > wsdl4j < / artifactId > < version > 1.6.3 < / version > < / dependency > < dependency > < groupId > com . google . zxing < / groupId > < artifactId > core < / artifactId > < version > 2.0 < / version > < / dependency > < / dependencies > < build > < pluginManagement > < plugins > < plugin > < groupId > org . apache . maven . plugins < / groupId > < artifactId > maven - compiler - plugin < / artifactId > < version > 2.3.1 < / version > < configuration > < source > 1.7 < / source > < target > 1.7 < / target > < / configuration > < / plugin > < / plugins > < / pluginManagement > < plugins > < plugin > < artifactId > maven - resources - plugin < / artifactId > < version > 2.6 < / version > < executions > < execution > < id > copy - resources < / id > < phase > validate < / phase > < goals > < goal > copy - resources < / goal > < / goals > < configuration > < outputDirectory > $ { basedir } / target / Crunchify < / outputDirectory > < resources > < resource > < directory > resources < / directory > < filtering > true < / filtering > < / resource > < / resources > < / configuration > < / execution > < / executions > < / plugin > < plugin > < groupId > org . apache . maven . plugins < / groupId > < artifactId > maven - dependency - plugin < / artifactId > < executions > < execution > < id > copy - dependencies < / id > < phase > prepare - package < / phase > < goals > < goal > copy - dependencies < / goal > < / goals > < configuration > < outputDirectory > $ { project . build . directory } / Crunchify / lib < / outputDirectory > < overWriteReleases > false < / overWriteReleases > < overWriteSnapshots > false < / overWriteSnapshots > < overWriteIfNewer > true < / overWriteIfNewer > < / configuration > < / execution > < / executions > < / plugin > < plugin > < groupId > org . apache . maven . plugins < / groupId > < artifactId > maven - jar - plugin < / artifactId > < configuration > < archive > < manifest > < addClasspath > true < / addClasspath > < classpathPrefix > lib / < / classpathPrefix > < mainClass > com . crunchify . tutorial . CrunchifyMain < / mainClass > < / manifest > < manifestEntries > < Class - Path > . < / Class - Path > < / manifestEntries > < / archive > < finalName > Crunchify / Crunchify < / finalName > < / configuration > < / plugin > < / plugins > < / build > < / project > |
Krok 2
Kliknij prawym przyciskiem myszy Project -> Run As -> Maven Build


Krok 3
Podaj argument „ clean install
”

Krok 4
Powinieneś zobaczyć wynik podobny do tego.

Krok-5
Teraz sprawdź folder /target/Crunchify
, aby sprawdzić wszystko pod nim.

Krok-6
Teraz po prostu uruchom swój projekt za pomocą poniższego polecenia $bash> java -jar Crunchify.jar
Daj mi znać, jeśli masz jakiś problem z projektem budowlanym. Ciesz się i szczęśliwego kodowania.