JavaRush /Java Blog /Random-IT /Collegamento delle librerie utilizzando Maven
Дмитрий Яковенко
Livello 35
Москва

Collegamento delle librerie utilizzando Maven

Pubblicato nel gruppo Random-IT
Collegamento delle librerie utilizzando Maven - 1 Problema JavaRush utilizza alcuni pacchetti che erano in JDK8 e poi sono stati tagliati. Ad esempio, JavaFX per i giochi o JAXB per l'elaborazione XML. Pertanto, se stai utilizzando una nuova versione di JDK, allora hai un problema... Ma anche se utilizzi la vecchia scuola JDK8, allora hai anche un problema... Nella missione 4 Collezioni dovrai connettere Jackson per elaborare JSON. Naturalmente, tutto può essere collegato manualmente, ma è piuttosto noioso. Devi scaricarli manualmente, aggiungerli al progetto... Soluzione In realtà, Maven è necessario per automatizzare questa routine. 0) Consiglio vivamente di fare una copia di backup del progetto JavaRush, altrimenti non si sa mai... 1) Per prima cosa aggiungiamo Maven al nostro progetto. Fare clic con il tasto destro sul modulo 4.JavaCollections, selezionare Aggiungi supporto framework... Maven, [Ok] 2) Ora troviamo il file pom.xml, aggiungiamo manualmente un blocco al suo interno
<dependencies>
</dependencies>
Subito dopo </version> 3) E poi iniziamo ad aggiungere i pacchetti di cui abbiamo bisogno. Se abbiamo bisogno di Jeckson, cerchiamo su Google “jackson maven dependency” Troviamo una risposta come questa: http://tutorials.jenkov.com/java-json/jackson-installation.html Vediamo che per Jeckson abbiamo bisogno di 3 dipendenze (artifactId) : jackson-core, jackson-annotations, jackson-databind Ci sono altre dipendenze, ma non ne abbiamo ancora bisogno; le aggiungeremo quando ne avremo bisogno. Ora cerchiamo queste 3 dipendenze su questo sito - https://mvnrepository.com/ Inseriamo lì i nomi dei nostri artefatti, troviamo quelli utilizzati dalla maggior parte o la versione più recente. E copia il testo della dipendenza nel nostro pom.xml. 4) In totale, il nostro pom.xml è diventato così:
<?xml version="1.0" encoding="UTF-8"?>
<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>groupId</groupId>
    <artifactId>4.JavaCollections</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.3</version>
        </dependency>
    </dependencies>


</project>
Meraviglioso, fai clic destro su di esso e seleziona Maven/Reimporta. 5) Ora Jeckson è nei nostri programmi, i nomi in rosso degli oggetti sono scomparsi. Ma il codice ha smesso di compilare, scrive un errore:
Error:java: error: release version 5 not supported
Per qualche motivo, quando si introduce Maven in un progetto, la versione di Java supportata scende a 5... Dobbiamo risolvere questo problema: File\Settings\Build, Execution, Deployment\Compiler\Java Compiler Lì nel modulo è indicato che per il nostro modulo 4.JavaCollections: devi codificare in Java5... Eliminiamo il nostro modulo in questa finestra. Ma non è tutto, quindi apriamo File\Project Structure\Modules. Lì selezioniamo il nostro modulo 4.JavaCollections. Successivamente, seleziona la scheda Livello lingua - Predefinita progetto. 5.1) Ho trovato come risolvere il problema dal punto 5. Basta aggiungere quanto segue a pom.xml:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Ora Maven imposta la versione del bytecode per il nostro modulo uguale a JDK 8 e ne siamo soddisfatti. Non ho cancellato il 5° punto, l’ho lasciato per informazione generale. In modo che ci sia una comprensione di dove quali versioni JDK possono essere modificate in IDEA 6) Parlando dell'impostazione predefinita del progetto. JavaRush funziona su JDK 8. E se hai la versione 11 (o successiva), giurerai regolarmente contro il Validatore, che non trasmette il tuo codice. Poiché scriverai il codice che hai inserito in JDK 9+, tutto funzionerà per te e il Validatore ti darà un errore. Andate quindi su: File\Project Structure\Project Indichiamo la vostra versione attuale del JDK, e sotto di essa indichiamo il livello della lingua - rigorosamente 8 - Lambda, annotazioni di tipo ecc. Qual è il vantaggio: vedrai le funzionalità di JDK 9+, ma se provi ad aggiungerle, IDEA imprecherà. Ad esempio, "aaa".lines(); - puoi scrivere (IDEA lo sostituirà, anche se lo evidenzierà in rosso), puoi fallire - studia l'interno. Ma non ti permetterà di compilare. 7) L'ultima cosa che dobbiamo fare è correggere i percorsi all'interno del pacchetto 4.JavaCollections. Maven li ha rifatti da solo, li restituiamo com'erano: a) Vai a File\Project Structure\Modules b) Seleziona 4.JavaCollections\Source c) Elimina target, rosources, test d) Posiziona la cartella di origine su src e) Sposta il file com sul disco e di nuovo su src e) La cartella principale viene eliminata. In generale lo facciamo come prima di Maven, per analogia con 3.JavaMultithreading 8) Ora aggiungiamo noi stessi le restanti dipendenze, ad esempio per JAXB. Se è necessario aggiungere la registrazione, il mio articolo può aiutare . Lo aggiungiamo al curriculum: Maven. Sei favolosa! Se ti è stato d'aiuto, metti mi piace, iscriviti, suona il campanello!)))
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION