Maven Scope Nedir? Maven Dependency Scope Türleri
Maven'da scope, bir bağımlılığın nasıl kullanılacağını belirten bir özelliktir. Maven projelerinde bağımlılıkları tanımlarken, bu bağımlılıkların nasıl entegre edileceğini ve hangi bağlamda kullanılacağını belirtmek için scope özelliği kullanılır. Scope değeri, bağımlılığın yaşam döngüsü ve kullanımı hakkında önemli bilgiler içerir.
Bu scope değerleri, bağımlılıkların projeye nasıl entegre edileceği konusunda önemli bilgiler sağlar ve bağımlılıkların projenin derleme ve çalışma zamanındaki davranışını etkiler.
Yaygın Olarak Kullanılan Maven Scope Türleri
Compile
Compile, Maven'daki varsayılan scope değeridir.
- Varsayılan scope değeridir.
- Bağımlılık, hem compile time hem de runtime esnasında kullanılır.
- Bağımlılık, projenin sınıfları tarafından erişilebilir.
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <scope>compile</scope> </dependency>
Provided
Provided scope'u, bağımlılığın derleme sırasında kullanılmasını ancak çalışma zamanında kullanılmamasını sağlar.
- Bağımlılık, compile time'da kullanılır, ancak çalışma zamanında kullanılmaz.
- Genellikle application server tarafından sağlanan kütüphaneler için kullanılır.
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <scope>provided</scope> </dependency>
Runtime
Runtime scope'u, bağımlılığın yalnızca uygulama çalışırken kullanılacağını belirtir.
- Bağımlılık, sadece runtime esnasında kullanılır.
- Compile time esnasında kullanılmaz, ancak uygulama çalıştığında kullanılır.
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <scope>runtime</scope> </dependency>
Test
Test scope'u, bağımlılığı yalnızca test kodları için kullanılabilir hale getirir.
- Bağımlılık, sadece test sınıfları tarafından kullanılır.
- Uygulama tarafından kullanılmaz ve testlerin derlenmesi ve çalıştırılması için kullanılır.
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <scope>test</scope> </dependency>
System
System scope'u, bağımlılığın yerel dosya sistemi üzerindeki belirli bir konumdan alınacağını belirtir.
- Bağımlılık, yerel dosya sisteminde veya sistemde belirli bir konumda bulunur.
- Genellikle özel durumlar için kullanılır ve çoğunlukla önerilmez.
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <scope>system</scope> <systemPath>/path/to/library.jar</systemPath> </dependency>
