JavaRush /Java blogi /Random-UZ /Maven yordamida kutubxonalarni ulash

Maven yordamida kutubxonalarni ulash

Guruhda nashr etilgan
Maven yordamida kutubxonalarni ulash - 1 Muammo JavaRush JDK8 da bo'lgan ba'zi paketlardan foydalanadi va keyin ular kesilgan. Masalan, o'yinlar uchun JavaFX yoki XML ishlov berish uchun JAXB. Shuning uchun, agar siz JDK ning yangi versiyasidan foydalanayotgan bo'lsangiz, unda sizda muammo bor... Lekin eski JDK8 maktabida bo'lsangiz ham, sizda ham muammo bor... 4-to'plamda siz Jeksonni ulashingiz kerak bo'ladi. JSONni qayta ishlash uchun. Albatta, hamma narsa qo'lda ulanishi mumkin, lekin bu juda zerikarli. Siz ularni qo'lda yuklab olishingiz kerak, ularni loyihaga qo'shishingiz kerak ... Yechim Aslida, bu tartibni avtomatlashtirish uchun Maven kerak. 0) Men JavaRush loyihasining zaxira nusxasini yaratishni qat'iy tavsiya qilaman, aks holda siz hech qachon bilmaysiz... 1) Birinchidan, loyihamizga Mavenni qo'shamiz. 4.JavaCollections moduliga sichqonchaning o‘ng tugmasi bilan bosing, Framework Support-ni qo‘shish-ni tanlang... Maven, [Ok] 2) Endi biz pom.xml faylini topamiz, unga blokni qo‘lda qo‘shamiz.
<dependencies>
</dependencies>
</version> dan so'ng darhol 3) Va keyin biz kerakli paketlarni qo'shishni boshlaymiz. Agar bizga Jekson kerak bo'lsa, biz Google'da "jackson maven dependency" ni qidiramiz Biz shunday javob topamiz: http://tutorials.jenkov.com/java-json/jackson-installation.html Biz Jekson uchun bizga 3 ta bog'liqlik kerakligini ko'ramiz (artifactId) : jackson- core, jackson-annotations, jackson-databind Boshqa bog'liqliklar ham bor, lekin ularga hali kerak emas; kerak bo'lganda ularni qo'shamiz. Endi biz ushbu 3 ta bog'liqlikni ushbu saytda qidiramiz - https://mvnrepository.com/ Biz u erda artefaktlarimizning nomlarini kiritamiz, ko'pchilik foydalanadiganlarini yoki eng so'nggi versiyasini topamiz. Va bog'liqlik matnini bizning pom.xml ga nusxalash. 4) Umuman olganda, bizning pom.xml shunday bo'ldi:
<?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>
Ajoyib, ustiga o'ng tugmasini bosing va Maven/Reimport-ni tanlang. 5) Endi Jekson bizning dasturlarimizda, qizil ob'ekt nomlari yo'qoldi. Lekin kod kompilyatsiya qilishni to'xtatdi, xato yozadi:
Error:java: error: release version 5 not supported
Negadir Mavenni loyihaga kiritishda qo'llab-quvvatlanadigan Java versiyasi 5 ga tushadi... Buni tuzatishimiz kerak: File\Settings\Build, Execution, Deployment\Compiler\Java Compiler Modulda shunday ko'rsatilgan. 4.JavaCollections modulimiz uchun - Java5 da kodlashingiz kerak... Biz modulimizni shu oynada o'chirib tashlaymiz. Lekin bu hammasi emas, keyin File\Project Structure\Modules-ni oching U erda biz 4.JavaCollections modulimizni tanlaymiz. Keyin, Til darajasi - Loyihaning standart yorlig'ini tanlang. 5.1) 5-banddan muammoni qanday hal qilishni topdim. Pom.xml ga quyidagini qo'shish kifoya:
<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>
Endi Maven JDK 8 ga teng modulimiz uchun bayt-kod versiyasini o'rnatadi va biz bundan mamnunmiz. Men 5-bandni o'chirmadim, uni umumiy ma'lumot uchun qoldirdim. Shunday qilib, IDEA-da qaysi JDK versiyalarini qayerda o'zgartirish mumkinligi haqida tushuncha mavjud 6) Loyihaning sukut bo'yicha gapirganda. JavaRush JDK 8 da ishlaydi. Agar sizda 11 (yoki undan yangiroq) versiya mavjud bo'lsa, siz muntazam ravishda kodingizni o'tkazmaydigan Validatorga qasamyod qilasiz. JDK 9+ da siz kiritgan kodni yozganingiz uchun hammasi siz uchun ishlaydi va Validator sizga xatolik beradi. Shuning uchun, o'ting: File\Project Structure\Project Biz sizning JDK-ning joriy versiyasini ko'rsatamiz va uning ostida til darajasini ko'rsatamiz - qat'iy 8 - Lambdalar, izohlarni yozing va hokazo. Qanday foyda bor - siz JDK 9+ imkoniyatlarini ko'rasiz, lekin agar siz ularni qo'shmoqchi bo'lsangiz, IDEA la'natlaydi. Masalan, "aaa".lines(); - yozishingiz mumkin (IDEA uni almashtiradi, garchi u qizil rangda ta'kidlasa ham), siz muvaffaqiyatsiz bo'lishingiz mumkin - ichki narsalarni o'rganing. Ammo bu sizga kompilyatsiya qilishga ruxsat bermaydi. 7) Biz qilishimiz kerak bo'lgan oxirgi narsa - 4.JavaCollections paketi ichidagi yo'llarni to'g'rilash. Maven ularni o'zi uchun qayta yaratdi, biz ularni avvalgidek qaytaramiz: a) File\Project Structure\Modules-ga o'ting b) 4.JavaCollections\Source-ni tanlang c) Maqsad, rosources, testni o'chirish d) Manba jildini src-ga joylashtiring e) com papkasini diskka src ga qaytaring e) Asosiy papka o'chiriladi. Umuman olganda, biz buni Mavendan oldingidek qilamiz, 3.JavaMultithreading 8 ga o'xshatib) Endi qolgan bog'liqliklarni o'zimiz qo'shamiz, masalan JAXB uchun. Agar siz jurnalni qo'shishingiz kerak bo'lsa, mening maqolam yordam berishi mumkin . Biz uni rezyumega qo'shamiz - Maven. Siz ajoyibsiz! Agar u yordam bergan bo'lsa - like, obuna bo'ling, qo'ng'iroq qiling!)))
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION