Merhabalar.

Geliştirilen bir Java projesinde Microsoft SQL Server kullanma durumumuz hasıl olabiliyor. Microsoft bize bir adet JDBC driver sunuyor fakat geliştirilen Java projeleri çoğunlukla Maven tabanlı oluyor ve Microsoft SQL JDBC Driver’ın bir Maven bağımlılığı yok. Yani Maven reposu içerisinde bulunmuyor kendileri. Oluşturulan projenin de bir sunucu üzerinde koşması gerekiyor ve bu durumda jarı indirip classpath’e elle atmak vb. durumlar uygun olmuyor. Sorunlara açık oluyor. Bu durumda bizim bu JDBC driver’ı kendi Maven local repomuza eklememiz ve pom.xml dosyasına kaydetmemiz lazım. Şimdi bunu nasıl yapacağımıza bakalım.

Öncelikle sistemimizde Maven’ın kurulu olması gerekiyor. Komut satırınızdan mvn -version komutunu vererek Maven’ın hangi sürümünün kurulu olduğuna bakabilirsiniz. Eğer kurulu değilse komutun bulunamadığına mesaj dönecektir zaten.

Mac OS işletim sisteminde brew install maven komutunu işletmeniz Maven kurulumu için yeterlidir. Hatırladığım kadarı ile Linux dağıtımlarında da tek komutla kurulum yapılabiliyor. Sadece Windows’da Path ayarlamaları yapmak gerekiyor.

https://www.microsoft.com/en-us/download/details.aspx?id=11774 adresinden Microsoft SQL JDBC Driver’ın istediğiniz bir sürümünü indirin. Ben aşağıdaki resimdeki işaretli sürümü indiriyorum.

İndirdiğimiz tar.gz uzantılı sıkıştırılmış dosyayı herhangi bir yere açalım ve o orada beklesin.

Şimdi herhangi bir IDE’de bir Maven projesi açalım ve pom.xml’imizi şöyle düzenleyelim.

<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>com.ilkaygunel</groupId>
	<artifactId>MsSsqlJdbcInLocalRepo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>MsSsqlJdbcInLocalRepo</name>
	<dependencies>
		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>sqljdbc4</artifactId>
			<version>4.0</version>
		</dependency>
	</dependencies>
</project>

IDE bu düzenlemenin ardından hata verecektir çünkü ne local repoda ne uzak sunucuda böyle bir bağımlılık bulunmaktadır.

Şimdi terminali açalım, az önce indridğimiz tar.gz uzantılı dosyayı açtığımız yere gidelim. Bu klasörün içinde enu isminde bir klasör var. cd komutu ile içine girelim ve şu komutu işletelim:

mvn install:install-file -Dfile=sqljdbc42.jar -DgroupId=com.microsoft.sqlserver
-DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar

enu ismindeki klasör içinde 4 adet jar var. Biz bunlardan sqljdbc42.jar ismindeki jar’ı kullanıyoruz.

Terminalden işlettiğimiz komutu biraz açacak olursak bu komut sizin local maven reponuz içerisinde sanki uzak sunucudan indirilmiş gibi bir bağımlılık oluşturur.

  • mvn install:install-file kod parçası local repo içerisinde bağımlılık oluşturacak.
  • -Dfile=sqljdbc42.jar kod parçası hangi jar’ın bağımlılık olarak kullanılacağını bildiriyor. Bu kısım en önemli noktalardan birisi çünkü projemizin kullanacağı dosyayı burada tanımlıyoruz.
  • -DgroupId=com.microsoft.sqlserver kod parçası ilgili bağımlılığın gruop id bilgisini vermemize yarıyor. Maven repolarından çağırım yaparken de bildiğiniz gibi groupId ve artifactId bilgileri ile çağırım yapıyoruz.
  • -DartifactId=sqljdbc4 kod parçası ilgili bağımlılığın artifactId bilgisini tanımlıyor.
  • -Dversion=4.0 -Dpackaging=jar kod parçası da oluşturulan local bağımlılığın versiyon ve paketleme bilgisini veriyor.

Komutu işletirken pom.xml’e eklediğimiz bağımlılık kodu ile komuttaki bilgilerin uyuşmasına dikkat etmemiz gerekiyor.

BUILD SUCCESS aldıktan sonra IDE’mize geri dönelim. Ben Eclipse IDE’de açtım projeyi. Projeye sağ tıklayalım ve Maven -> Update Project diyelim. NetBeans kullanan arkadaşlar da Clean&Build yapabilirler.

pom.xml’deki hata gördüğünüz gibi gitti ve artık Microsoft SQL JDBC Driver’ı Maven’a tanıtmış olduk.

Başka bir yazıda görüşene kadar sağlıcakla kalın.

Selam ve Sevgilerimle