Maven Projesi Oluşturmak
Apache Maven yazılarına devam ediyorum. Bu Apache Maven yazımda bir Maven projesi oluşturacağız ve “Merhaba Dünya” diyeceğiz. Önceki yazıda Maven kullanbilmek için bilgisayarımıza kurulumunu ve yapılandırmasını yazmıştık. Bu örneğe başlamadan önce o yazıyı okumanızı tavsiye ederim.
NetBeans kullanarak Maven projesi oluşturacağım. Bu proje web tabanlı bir maven projesi olucak. Kütüphanelerimizi maven ile yöneterek Java Server Faces sayesinde tarayıcıdan Merhaba Dünya diyeceğiz. Adım adım anlatmaya çalışacağım. Kolaylıkla bir Maven Projesi oluşturalım.
NetBeans’te yeni proje açıyoruz ve Kategoriden Maven’i , Projeden ise Web Uygulaması seçeneğini seçiyoruz.
Oluşturacağınız projeye isim verelim.
Proje ayarlamalarını yaptıktan sonra Maven gerekli dosyaları internetten indirecek ve projemiz üstteki resimde ki gibi oluşacaktır.
Maven Projesi yapmanın amacı burada Dependencies diye bahsedeceğimiz kütüphanelerimizin nasıl kullandığımızı anlamaya çalışmak aslında.
Projemiz’in Dependencies’i Javaee-web-api gözüküyor. Yani projemizin kütüphanesinde sadece bu var. Biz web uygulamamızda Java Server Faces kullancağız. Projemize devam edelim.
Java Server Faces sayfamızda bir “Merhaba Dünya” mesajı vereceğimiz için Hello.java isminde bir class dosyası oluşturalım. Onun içerisine de
package com.burakkutbay.maven_hello_world; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; /** * * @author burakkutbay */ @ManagedBean @SessionScoped public class Hello implements Serializable{ private String message="Hello World"; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
Bu mesajı sayfamızda duyurmak için gerekli işlemleri yapalım.
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://java.sun.com/jsf/core" > <h:head> <title>Merhaba Dünya</title> </h:head> <h:body> <h2>Welcome #{hello.message}</h2> </h:body> </html>
Şimdi projemizi çalıştıralım.
Sonuç.
Welcome #{hello.message}
oldu. Projemiz istediğimiz sonucu bize nedense vermedi.
İşte tam bu durumda devreye Maven ile kütüphane yönetimi devreye girmekte. Apache Maven sayesinde Java Server Faces’in çalışması için gerekli kütüphaneleri Maven yardımı ile projemizi ekleyeceğiz ve Apache Maven’ni bu noktada etkin şekilde kullacağız. Projemizde pom.xml adında bir dosya bulunmakta. Bu dosya her Maven projesinde bulunmakta olup projemizde gerekli olan “Dependencies” leri buraya ekleyeceğiz. Şimdi pom.xml dosyasına açıp bakalım içerisinde neler var.
<?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>com.burakkutbay</groupId> <artifactId>Maven_Hello_World</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>Maven_Hello_World</name> <properties> <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <compilerArguments> <endorseddirs>${endorsed.dir}</endorseddirs> </compilerArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <phase>validate</phase> <goals> <goal>copy</goal> </goals> <configuration> <outputDirectory>${endorsed.dir}</outputDirectory> <silent>true</silent> <artifactItems> <artifactItem> <groupId>javax</groupId> <artifactId>javaee-endorsed-api</artifactId> <version>7.0</version> <type>jar</type> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
Pom.xml dosyamızın içeriği bu şekilde bizim en çok ilgilendiğimiz (şimdilik) kısım <dependency> </dependency> kısmıdır. Projemizde gerekli olan kütüphaneleri kullanmamız için bu alana gerekli eklemeleri yapmamız gerekmektedir. Pom.xml dosyamıza istediğimiz kütüphaneleri eklememiz için http://mvnrepository.com/ adresinden gerekli kütüphaneleri bulup projemize ekleyeceğiz. Projemize gerekli olan kütüphaneleri ekleyelim.
Arama yaptıktan sonra gerekli versiyonları bulup Maven Dependency adreslerini alalım.
<dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> </dependency>
Gerekli olan Dependency adreslerini alıktan sonra pom.xml dosyamıza <dependencies> </dependencies> tagları arasına yazarak işlemi tamamlıyoruz ve pom.xml dosyamızı kaydediyoruz. Kaydetme işlemi gerçekleştikten sonra Projemizde bulunan Değendencies klasörüne eklediğimiz kütüphaneleri indirmiş olucak.
Bu indirme işlemi bittikten sonra projemizi tekrar çalıştıralım.
Welcome Hello World
Ve projemiz amaçladığımız şekilde çalıştı.
[otw_shortcode_button href=”https://github.com/BrkSe/Maven_Hello_World” size=”medium” icon_type=”social foundicon-github” icon_position=”left” shape=”radius” target=”_blank”]Projeyi Github Üzerinden Görüntüle[/otw_shortcode_button]
Merhaba arkadaşlar maven ile projeme eklemek istediğim jar kodunu
javax.servlet
jstl
1.2
pom.xml ekledigimde “dependency not yet downloaded. Build project to correct errors”
hatası alıyorum.yardımlarınızı bekliyorum.