Che cos'è pom.xml (Project Object Model)? Esempio di pom.xml da utilizzare nel tuo progetto Web dinamico (Java / J2EE)

Pubblicato: 2021-06-25
Che cos'è pom.xml (Project Object Model)? Esempio di pom.xml da utilizzare nel tuo progetto Web dinamico

Che cos'è il file pom.xml?

POM significa Project Object Model . È un'unità di lavoro fondamentale in Maven. Il file pom.xml contiene tutte le istruzioni di configurazione, dipendenze, integrazione del plug-in e configurazione del progetto.

Questo è il modo migliore per aggiungere eventuali dipendenze di libreria al tuo progetto. Copiare i file .jar nella cartella delle risorse del progetto è un vecchio modo di farlo

Comprendiamo in dettaglio il file pom.xml.

File pom.xml predefinito più semplice

Esaminiamo gli elementi pom.xml:

Elemento Descrizione
progetto L'elemento è la radice del descrittore. La tabella seguente elenca tutti i possibili elementi figlio.
modelloVersione Dichiara a quale versione del descrittore di progetto è conforme questo POM. Impostalo versione 4.0.0.
ID gruppo Identificatore univoco universale per un progetto. È normale utilizzare un nome di pacchetto completo per distinguerlo da altri progetti con un nome simile (es. org.apache.maven).
ID artefatto L'identificatore per questo artefatto che è univoco all'interno del gruppo fornito dall'ID gruppo. Un artefatto è qualcosa che viene prodotto o utilizzato da un progetto. Esempi di artefatti prodotti da Maven per un progetto includono: JAR, sorgenti e distribuzioni binarie e WAR.
versione La versione attuale del manufatto prodotto da questo progetto.
comprendere gli elementi pom.xml

file pom.xml con elementi aggiuntivi

file pom.xml con più elementi:

Elemento Descrizione
confezione Il tipo di artefatto prodotto da questo progetto, ad esempio jar war ear pom. I plugin possono creare il proprio packaging, e quindi i propri tipi di packaging, quindi questo elenco non contiene tutti i tipi possibili.
nome Il nome completo del progetto.
url L'URL della home page del progetto.
dipendenze Questo elemento descrive tutte le dipendenze associate a un progetto. Queste dipendenze vengono utilizzate per costruire un percorso di classe per il progetto durante il processo di compilazione. Vengono scaricati automaticamente dai repository definiti in questo progetto.
dipendenza Il gruppo di progetto che ha prodotto la dipendenza, ad esempio org.apache.maven.
costruire Informazioni necessarie per costruire il progetto.
sourceDirectory Questo elemento specifica una directory contenente l'origine del progetto. Il sistema di compilazione generato compilerà il sorgente in questa directory quando il progetto sarà compilato. Il percorso indicato è relativo al descrittore del progetto.
nomefinale Il nome del file (esclusa l'estensione e senza informazioni sul percorso) che verrà chiamato l'artefatto prodotto. Il valore predefinito è ${artifactId}-${version}.
plugin L'elenco dei plugin da utilizzare.
collegare L'ID gruppo del plug-in nel repository.
scopo L'ambito della dipendenza: compilazione, runtime, test, sistema e fornito. Utilizzato per calcolare i vari percorsi di classe utilizzati per la compilazione, il test e così via. Aiuta anche a determinare quali manufatti includere in una distribuzione di questo progetto.

Abbiamo pubblicato più di 700 tutorial Java su Crunchify e utilizziamo file pom.xml dall'inizio, comprese le dipendenze Spring MVC.

Negli ultimi anni, a causa dell'aggiunta di sempre più dipendenze della libreria, il file pom.xml del tutorial Java di Crunchify è ora più grande

Ecco il nostro attuale file pom.xml come riferimento. Se lo copi e lo aggiungi al tuo progetto, funziona anche per te.

pom.xml che stiamo usando per i totorial Java di Crunchify

Spero che questo chiarisca cos'è il file pom.xml e perché lo usiamo in qualsiasi progetto J2EE di Java.

Fammi sapere se hai altre domande.

Aggiorna Log4j all'ultima versione

CVE-2021-44228: Apache Log4j2 <=2.14.1 Le funzionalità JNDI utilizzate nella configurazione, i messaggi di registro e i parametri non proteggono da LDAP controllati dagli aggressori e altri endpoint correlati a JNDI.

Da log4j 2.16.0, questo comportamento è stato disabilitato per impostazione predefinita.