JavaRush /Blog Java /Random-PL /Łączenie bibliotek za pomocą Mavena
Дмитрий Яковенко
Poziom 35
Москва

Łączenie bibliotek za pomocą Mavena

Opublikowano w grupie Random-PL
Łączenie bibliotek za pomocą Mavena - 1 Problem JavaRush używa niektórych pakietów, które były w JDK8, a następnie zostały wycięte. Na przykład JavaFX do gier lub JAXB do przetwarzania XML. Dlatego jeśli używasz świeżej wersji JDK, to masz problem... Ale nawet jeśli używasz starej szkoły JDK8, to też masz problem... W zadaniu 4 Kolekcje będziesz musiał połączyć Jacksona do przetwarzania JSON. Oczywiście wszystko można podłączyć ręcznie, ale jest to dość nudne. Musisz je pobrać ręcznie, dodać do projektu... Rozwiązanie Właściwie do zautomatyzowania tej procedury potrzebny jest Maven. 0) Zdecydowanie polecam wykonanie kopii zapasowej projektu JavaRush, inaczej nigdy nie wiadomo... 1) Najpierw dodajmy Mavena do naszego projektu. Kliknij prawym przyciskiem myszy moduł 4.JavaCollections, wybierz opcję Add Framework Support... Maven, [Ok] 2) Teraz znajdujemy plik pom.xml, dodajmy w nim ręcznie blok
<dependencies>
</dependencies>
Zaraz po </version> 3) Następnie zaczynamy dodawać potrzebne pakiety. Jeśli potrzebujemy Jecksona, wpiszmy w Google „zależność jackson maven”. Znajdujemy odpowiedź taką jak ta: http://tutorials.jenkov.com/java-json/jackson-installation.html Widzimy, że dla Jecksona potrzebujemy 3 zależności (artifactId) : jackson-core, jackson-adnotations, jackson-databind Istnieją inne zależności, ale jeszcze ich nie potrzebujemy; dodamy je, gdy będą potrzebne. Teraz szukamy tych 3 zależności na tej stronie - https://mvnrepository.com/ Wpisujemy tam nazwy naszych artefaktów, znajdujemy te, które są używane przez większość, lub najnowszą wersję. I skopiuj tekst zależności do naszego pliku pom.xml. 4) W sumie nasz pom.xml wyglądał tak:
<?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>
Wspaniale, kliknij go prawym przyciskiem myszy i wybierz Maven/Reimport. 5) Teraz Jeckson jest w naszych programach, czerwone nazwy obiektów zniknęły. Ale kod przestał się kompilować, zapisuje błąd:
Error:java: error: release version 5 not supported
Z jakiegoś powodu, gdy wprowadzamy Mavena do projektu, wersja obsługiwanej Java spada do 5... Musimy to naprawić: File\Settings\Build, Execution, Deployment\Compiler\Java Compiler Tam w module wskazano, że dla naszego modułu 4.JavaCollections - musisz kodować w Java5... W tym oknie usuwamy nasz moduł. Ale to nie wszystko, więc otwieramy File\Project Structure\Modules. Tam wybieramy nasz moduł 4.JavaCollections. Następnie wybierz zakładkę Poziom języka - Domyślny projekt. 5.1) Znalazłem sposób na rozwiązanie problemu z punktu 5. Po prostu dodaj do 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>
Teraz Maven ustawia wersję kodu bajtowego dla naszego modułu na JDK 8 i jesteśmy z tego zadowoleni. Punktu 5 nie usunąłem, zostawiłem go dla informacji ogólnej. Aby zrozumieć, gdzie wersje JDK można zmienić w IDEA 6) Mówiąc o domyślnych ustawieniach projektu. JavaRush działa na JDK 8. A jeśli masz wersję 11 (lub nowszą), to regularnie będziesz przeklinać Validator, który nie przepuszcza Twojego kodu. Ponieważ napiszesz kod, który wprowadziłeś w JDK 9+, wszystko będzie dla Ciebie działać, a Walidator wyświetli błąd. Dlatego przejdźmy do: File\Project Structure\Project Wskazujemy Twoją aktualną wersję JDK, a pod nią podajemy poziom języka - dokładnie 8 - Lambdy, adnotacje typu itp. Jaka z tego korzyść - zobaczysz możliwości JDK 9+, ale jeśli spróbujesz je dodać, IDEA przeklnie. Na przykład „aaa”.lines(); - możesz pisać (IDEA to zastąpi, chociaż podświetli to na czerwono), możesz ponieść porażkę - przestudiuj wnętrze. Ale to nie pozwoli ci się skompilować. 7) Ostatnią rzeczą, którą musimy zrobić, to poprawić ścieżki wewnątrz pakietu 4.JavaCollections. Maven przerobił je dla siebie, przywracamy je tak, jak były: a) Przejdź do File\Project Structure\Modules b) Wybierz 4.JavaCollections\Source c) Usuń cel, rosources, test d) Umieść folder źródłowy na src e) Przenieś com na dysk z powrotem do src e) Główny folder zostanie usunięty. Generalnie robimy to tak jak przed Mavenem, analogicznie do 3.JavaMultithreading 8) Teraz sami dodajemy resztę zależności, np. dla JAXB. Jeśli chcesz dodać rejestrowanie, mój artykuł może pomóc . Dodajemy to do CV - Maven. Jesteś wspaniały! Jeśli pomogłem - lajkuj, subskrybuj, dzwonku!)))
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION