CodeGym/Java Kursu/Modül 3/Bir Maven projesi oluşturun

Bir Maven projesi oluşturun

Mevcut

Proje Tanımı Nesne Modeli

Maven'in ilk etapta standartlaştırdığı şeylerden biri de proje açıklamasıydı. Maven'den önce, her IDE'nin proje ve montajı hakkında (ve genellikle ikili biçimde) bilgi depolayan kendi proje dosyası vardı.

Maven, bir projenin ne olduğunu, nasıl inşa edilmesi gerektiğini ve çeşitli etiketler kullanarak hangi bağımlılıklara sahip olduğunu açıklayan XML tabanlı, evrensel, açık bir standart bulmuştur. Proje açıklaması, genellikle pom.xml olarak adlandırılan tek bir dosyada bulunur .

Örnek bir pom.xml dosyası :

<?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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io </groupId>
           <artifactId>commons-io</artifactId>
        <version>2.6</version>
        </bağımlılık>
   </bağımlılıklar>


</proje>

Bu örnekte yazılı üç şey var:

  • Maven proje standardının versiyonu hakkında bilgi mavidir.
  • Projenin kendisiyle ilgili bilgiler kırmızı renktedir.
  • Kullanılan kitaplıklar hakkında bilgi yeşildir.

Pom dosya cihazına daha yakından bakalım.

Maven proje yapısı

Ve hemen soru şu: Son örnekteki tuhaflığa dikkat ettiniz mi? Proje kodunun kendisi hakkında bilgi içermez! Java dosyalarının, kaynakların, özellik dosyalarının, html'nin, derleme komut dosyalarının ve benzerlerinin nerede depolandığına dair hiçbir kelime yoktur.

Ve cevap basit - Maven, projenin tasarımını standartlaştırdı. Bir projede kodu düzenlemek için birkaç seçenek vardır ve en yaygın olanı:

Yapı, standart IDEA projelerinden sonra biraz sıra dışıdır, ancak bunun için evrenseldir. Hayatınızda karşılaşacağınız projelerin %90'ı bu klasör yapısına sahip olacaktır .

Bir Maven projesi oluşturursanız (IDEA kullanarak veya konsolu kullanarak), belirtilen formu alacaktır. Burada her şeyin nasıl çalıştığını görelim.

Tahmin ettiğiniz gibi src klasörü projenin kaynak kodunu içerir. İki alt klasörü vardır: ana ve test .

/src/main/Java klasörü, projedeki tüm Java sınıflarının köküdür. Bir com.codegym.Cat sınıfınız varsa, /src/main/java /com/codegym /Cat.java klasöründe olacaktır . Metin veya ikili kaynaklar varsa, bunlar /src/main/resources klasöründe saklanmalıdır .

/src/test klasörünün yapısı, /src/main klasörünün yapısına benzer , ancak testleri ve bunların kaynaklarını içerir. Maven, bir proje oluştururken gerekli testleri nasıl yapacağını bilir, ancak bunun hakkında ayrı bir derste konuşacağız.

Ayrıca projede Maven'in projeyi inşa ettikten sonra kaydedeceği bir /target klasörü vardır. Büyük projeler genellikle önemsiz olmayan yapı betiklerine sahip olduğundan, bu klasörde hiçbir şey depolanmaz.

/target klasörünün ikinci amacı, ara derleme sonuçlarını önbelleğe almaktır. Büyük bir proje inşa ederken, Maven sadece değişen kısmını yeniden inşa edebilir, böylece inşa süresini birkaç kat hızlandırır.

Pekala, pastadaki kiraz gibi - projenin en kökünde pom.xml dosyası var. Aşağıda tartışacağımız proje hakkında gerekli tüm bilgileri içerir.

Cihaz pom.xml

Başlamak için, pom dosyası xml'dir, dolayısıyla standart başlıklar ve ad alanları bilgilerini içerir. Bu tamamen XML standardı ile ilgili, bu yüzden bunun hakkında ayrıntılı olarak konuşmayacağız. Bunun anlamı:

<?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">

        …

</proje>

Ayrıca, genellikle <project> etiketinin içindeki ilk satır, pom-file standardının sürümünün bir açıklamasıdır. Neredeyse her zaman 4.0'dır. Bu da bizi ilgilendirmez.

İlgilendiğimiz ilk satırlar şöyle görünür:

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample.app</groupId>
  <artifactId>new-app</artifactId>
  <version>1.0-SNAPSHOT</version>

Maven standardında anlattığımız şeyleri (program, proje, modül, kütüphane vb.) bir kez daha anlamamak için bunların hepsine yapay kelime denir . Maven'in yaratıcılarını reddedemeyeceğiniz şey, standardizasyon sevgisidir.

Gördüğünüz üç etiketin anlamı:

  • groupId - alan adının eklenmesiyle uygulamanın ait olduğu paket;
  • artifactId – benzersiz dizi anahtarı (proje kimliği);
  • sürüm - projenin sürümü.

Bu üç parametre herhangi bir artefaktı açık bir şekilde tanımlamak için yeterlidir .

Ayrıca, projenin açıklamasından sonra, genellikle projenin kullandığı yapıtların (kütüphanelerin) bir listesi bulunur. Şunun gibi görünüyor:

   <dependencies>

       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>

   </dependencies>

Bu örnekte commons-io paketinin 2.6 versiyonundaki commons-io kitaplığını projemize ekliyoruz.

Derleme zamanında Maven böyle bir kütüphaneyi global deposunda bulacak ve onu projenize ekleyecektir. Ve bu arada, bunu sadece Maven yapamaz.

IDEA, Maven ile nasıl çalışır?

Intellij IDEA, Maven ile çalışmakta harikadır. Bu tür projeleri nasıl açacağını, kendisi oluşturacağını, çeşitli yapı komut dosyalarını çalıştıracağını biliyor ve dahil edilen kitaplıkları mükemmel bir şekilde anlıyor.

Hatta bir süredir kendi yerleşik Maven'ine sahiptir, ancak yine de onu kendiniz kurup yapılandırabilmeniz gerekir, bu nedenle IDEA'nın bu özelliğinden daha önce bahsedilmedi. Teorik olarak, IDEA iki Maven arasında bir çatışmaya neden olabilir, bu yüzden iki Maven olduğunu bilmeniz sizin için iyi olur.

IDEA'da yeni bir Maven projesi nasıl oluşturulur:

Dosyalar > Yeni Proje menüsüne tıklayın. Soldaki Yeni Proje menü öğesini seçin .

maven projesi

Bazı noktaları açıklığa kavuşturalım:

  1. Proje Adı;
  2. Proje dosyası;
  3. Proje dili Java'dır;
  4. Proje türü Maven'dir.

Alt kısımdaki Gelişmiş Ayarlar bölümünde, IDEA sizden yeni projemizin goupID'sini, artefaktID'sini ve sürümünü belirtmenizi isteyecektir. Bu veriler daha sonra her zaman kolayca değiştirilebilir. Önerilenler arasından seçim yapın veya kendinizinkini girin:

Maven projesi 2

Ardından, gerekli konumda standart olarak bir proje oluşturun. Sonuç olarak, yapıyı görüyoruz:

Maven projesi 3

Java klasöründe sınıflar ve paketler oluşturulmalıdır, bundan daha önce bahsetmiştik. Ve bence kolayca üstesinden gelebilirsin. Devam etmeye hazırız, ancak biraz geriye, biraz "atladığımız" önemli bir konuya dönelim.

Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok