Pazar, Ocak 16, 2011

GlassFish Maven Repository

EJB 3.1 ile uğraşırken implementasyon olarak glassfish'i seçeyim dedim. (Bu aralar referans implementasyonlara sardım).

Tam ilgili dependency'yi eklemiştim ki tahmin ettiğim şey yine başıma geldi ilgili artifact merkezi maven repository'sinde yine yoktu. Bana da java.net maven repository'sini listeye eklemek düştü.

Not : java.net repository'si her ne kadar öğrenme sürecinde yada ev kullanımı için yeterli olsada profesyonel hayatta kullanmak uygun değil çünkü her an kullandığınız artifact kaldırılabilir. Bunun için "Nexus" veya muadili bir repository yöneticisi ile bağımlı olduğunuz kütüphanleri cache'lemeniz gerekiyor.

GlassFish EJB 3.1 Artifact
<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.ejb</artifactId>
  <version>3.1-b37</version>
</dependency>

Java.Net GlassFish Maven Repository
<repository>
  <id>glassfish</id>
  <name>Glassfish Maven Repo</name>
  <url>http://download.java.net/maven/glassfish</url>
</repository>

Pazar, Ocak 09, 2011

EclipseLink Maven Repository

Küçük Bir Not:

JPA 2.0'ın referans implementasyonu olan EclipseLink 2.0 henüz merkezi maven repository'sinde bulunmuyor bu yüzden projenizde kullanmak istediğinizde "Artifact"in bulunamadığına dair bir hata ile karşılaşıyorsunuz.

Aslında bu sadece EclipseLink'le ilgili bir problem değil, maven'in merkezi kütüphanesinin oldukça geç güncellendiği bir gerçek.

Çözümü ise aşağıdaki şekilde EclipseLink repository'sini pom'unuza eklemekten geçiyor ve sonrasında EclipseLink 2.0 artifactlerini ekleyebilirsiniz.

EclipseLink Maven Repository
<repositories>
  <repository>
     <id>EclipseLink Repo</id>
     <url>http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/rt/eclipselink/maven.repo</url>
  </repository>
</repositories>

EclipseLink JPA 2 API Artifact
<dependency>
   <groupId>org.eclipse.persistence</groupId>
   <artifactId>javax.persistence</artifactId>
   <version>2.0.0</version>
</dependency>

EclipseLink JPA 2 Implementation
<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>eclipselink</artifactId>
  <version>2.0.0</version>
</dependency>