Maven, jar kütüphanesi bağımlılıklarını otomatik olarak nasıl çözer?


Yayın Tarihi:17 Ocak 2021.



INFOMARTION > Maven, jar kütüphanesi bağımlılıklarını otomatik olarak nasıl çözer?

Genel bakış.

Maven kavanozları internetten otomatik olarak indirir, ancak tam olarak nasıl çalıştığını açıklamak istiyorum.

Bu makalenin öncülü, Maven'in ne olduğunu anlamanız gerektiğidir, bu nedenle Maven'in kendisine aşina değilseniz, aşağıdaki makaleye de başvurmalısınız.

Maven nedir ve ne işe yarar?

İçindekiler

  1. Maven'ın jar kütüphanesi bağımlılıklarını çözme yeteneği.
  2. özet

1. Maven'ın jar kütüphanesi bağımlılıklarını çözme yeteneği.

Maven, sadece pom.xml dosyasında gerekli jar dosyalarını tanımlayarak jar dosyalarını otomatik olarak alabilir. Ayrıca bu kavanozu çalıştırmak için gereken bağımlı kavanozları da otomatik olarak öğrenir. Nasıl çalıştığını açıklamak istiyorum.

1-1. Pom.xml dosyasına nelerin dahil edileceği.

İlk olarak, jar kütüphanesinin bağımlılığını çözmek için pom.xml dosyasında bilgi sağlanır. Maven, pom.xml dosyasındaki bilgileri işler. Örneğin "poi-3.17.jar" gerekliyse, pom.xml'de aşağıdaki gibi tanımlanır. (Bu arada, 'poi-3.17.jar' Excel gibi Microsoft Office dosyalarını işlemek için kullanılan bir kavanozdur.)

pom.xml


<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

Basitçe yukarıdakileri belirtmek "poi-3.17.jar" dosyasını internetten indirecek ve ayrıca "poi-3.17.jar" dosyasını çalıştırmak için gerekli olan beraberindeki jar dosyasını da internetten indirecektir.

1-2. İnternetten nasıl indiriliyorlar?

Sistemin basit bir açıklaması aşağıdaki şemada gösterilmiştir.

İnternette bulunan Maven depolarından indirin. Hiçbir şey ayarlanmamışsa, varsayılan değer Merkezi Depo'dur. URL aşağıdaki gibidir.

https://repo1.maven.org/maven2/

İlgileniyorsanız, internette bulunan depoların bir listesi için aşağıdaki web sitesine bakın.

https://mvnrepository.com/repos

İlk seferinde jar harici bir depodan getirilir, ancak yerel depoya kopyalanır ve ikinci seferden itibaren getirilmez. Yerel deponun konumu "C:\Users\user\.m2" şeklindedir.

Hedefi varsayılan değerden değiştirmek isterseniz, pom.xml dosyasına aşağıdaki depo etiketini ekleyerek de hedefi değiştirebilirsiniz.

pom.xml


<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
        </snapshots>
    </repository>
</repositories>

1-3. Alınacak kavanozun bağımlılıklarını çözmeye yönelik mekanizmalar.

Az önce 'poi-3.17.jar' elde etmenin bir örneğini anlattık, ancak 'poi-3.17.jar' çalıştırmak için 'commons-collections4-4.1.jar' gerektirir. Bu, 'poi-3.17.jar' dosyasının 'commons-collections4-4.1.jar' dosyasına bağlı olduğu anlamına gelir. Bu bağımlılığı çözme mekanizması, 'poi-3.17.jar' dosyasının depolandığı Maven deposunda bulunabilir. URL aşağıdaki gibidir.

https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/

Sanırım "poi-3.17.pom" saklanıyor ve bu dosyada "poi-3.17.jar "ın "commons-collections4-4.1.jar "a bağlı olduğu bilgisini bulacaksınız. Bu, 'poi-3.17.jar' dosyasını alırken sistemin yalnızca jar dosyasını değil, aynı zamanda pom dosyasını da aldığı ve diğer gerekli jar dosyalarını kontrol ettiği anlamına gelir.

2. özet

Maven'ın jar kütüphanelerindeki bağımlılıkları çözme mekanizması, bağımlılıkların alınacak jar dosyalarının depolandığı pom dosyasında tanımlanmasıdır.

Sonuna kadar izlediğiniz için teşekkür ederiz.