Posts Tagged ‘maven’

Maven คืออะไร

May 26th, 2010

What is Maven?
เรามาทำความรู้จักMavenกันก่อน Maven นั้นเกิดในยุดของการสร้าง Web Application ด้วย  Web Framework ในช่วงแรกๆ (Apache Turbine Web Application Framework) โดยสาเหตุหลักที่ทำให้เกิด Maven ขึ้นมาเพราะเมื่อก่อนเราจะใช้ Ant หรือ Build Script ที่เราสร้างขึ้นมาเอง ในการ build โปรเจคซึ่งสองสิ่งนี้มีความยืดหยุ่นสูงมากและในทางกลับกันพอเรามีโปรเจคมากขึ้น การใช้สองสิ่งนั้นมันดูยุ่งยากและจัดระเบียบในเรื่องต่างๆไม่ว่าจะเป็น Project Structure หรือ Library Management ได้ค่อนข้างยาก ผลคือทำให้เกิด Maven ขึ้นมาโดยที่มันเองก็เป็น build tool อีกตัวนึงที่สามารถทำในสิ่งที่ Antและ Build Script ทำได้ยากได้ ดังนั้น Mavenจึงเป็น build tools อีกตัวนึง ที่เอาไว้ใช้ build, compile, test, clean, deploy โปรเจคของเรา นอกจากนั้นMavenยังสามารถทำ dependency management,Javadoc ,siteและอื่นๆได้อีกด้วย มันจะทำให้การทำงานในโปรเจคของเราทำงานได้อย่างเป็นระเบียบ, ยืดหยุ่น โดย Maven จะมีไฟล์ config ของโปรเจคที่เป็น xml เพียงไฟล์เดียว ทำให้แก้ไขได้ง่าย และไม่รกต่อไฟล์ของโปรเจคเรา

ทำไมเราต้องใช้Maven, Problem?
ข้อดีของMavenมีมากมายก่ายกอง แต่ผมจะยกมาให้ดูเพื่อเห้นภาพซัก2ตัวอย่างว่าทำไมเราต้องใช้Maven
1. Maven จะมีStructure ของโปรเจคที่เป็น standard อันนี้เป็นข้อดีอย่างมาก ถ้าลองนึกภาพดู ถ้าเกิดเรามีโปรเจคซัก 6-7โปรเจค พอเวลาprogrammer จะเขียนโปรแกรมทีนึงแต่ละคนก็จะกำหนด structureของแต่ละคนทีนึง แล้วถ้ามีโปรเจคอยู่6-7 โปรเจค เท่ากับว่ามีstructureของโปรเจคทั้ง6-7แบบ
ปัญหา : ถ้าเราจะศึกษาโปรเจคนั้นเท่ากับว่าเราก็ต้องศึกษาstructure ทั้งหมดนะสิเหนื่อยตายพอดีครับ
ทางแก้ : Mavenเขาก็เลยกำหนดstandardขึ้นมาซะ ทำให้เราศึกษาแค่ตัวstandardของมันเพียงตัวเดียว เทากับว่าเราก็สามารถเข้าใจได้ในทุกๆโปรเจค

Standard directory organization

จากรูปด้านบนแสดงให้เห็นถึงเมื่อว่าเราทำงานในหลายๆ โปรเจคด้วยกัน แต่ละโปรเจคก็จะมีstructure เดียวกัน และแต่ละโปรเจคไฟล์configก็จะถูกเก็บไว้ไฟลืเดียวคือ pom.xml ทำให้ structure ของโปรเจคเรามีระเบียบมาก และถ้าเกิดrogrammerคนต่อไปมาพัฒนาต่อ ก็จะทำให้พัฒนาต่อได้โดยไม่ต้องมานั่งศึกษาstructureของโปรเจคต่ออีกมาก

2. Maven สามรถทำ Dependency management ได้ ทำให้programmer ไม่ต้องมาคุบควมdependencyที่จะเรียกมาใช้งาน
ปัญหา : ถ้ามีโปรเจคย่อยอยู่6-7โปรเจค แต่ละคนก็ใช้ dependency ของแต่ละคน เท่ากับว่าทุกโปรเจคต้องมาset pathของdependency ทุกโปรเจค
ทางแก้ : Maven จะมี repositoryที่รวบรวม dependencyไว้ให้บนinternetโดยเราไม่ต้องห่วงว่าจะใช้dependencyตัวนี้จะต้องโหลดที่ไหน เพียงเราแค่กำหนดชื่อ กับversionของdependencyที่เราจะใช้เข้าไป config ที่ pom.xml นอกนั้Maven จะจัดทำการเรียกหาdependencyให้เราเอง

Dependency management
เจ้าdependency management ตัวนี้หรอจะพูดได้อีกอย่างว่า ตัวจัดการlibraryให้เรานั้นเอง เราแค่กำหนดชื่อ และversionให้เท่านั้น ก็จะทำการเลือกหา dependency

จากรูปด้านบนแสดงให้เห็นถึงเมื่อว่าเราทำงานในหลายๆ โปรเจคด้วยกัน แต่ละโปรเจคก็จะมีstructure เดียวกัน และแต่ละโปรเจคไฟล์configก็จะถูกเก็บไว้ไฟลืเดียวคือ pom.xml ทำให้ structure ของโปรเจคเรามีระเบียบมาก และถ้าเกิดrogrammerคนต่อไปมาพัฒนาต่อ ก็จะทำให้พัฒนาต่อได้โดยไม่ต้องมานั่งศึกษาstructureของโปรเจคต่ออีกมาก

2. Maven สามรถทำ Dependency management ได้ ทำให้programmer ไม่ต้องมาคุบควมdependencyที่จะเรียกมาใช้งาน
ปัญหา : ถ้ามีโปรเจคย่อยอยู่6-7โปรเจค แต่ละคนก็ใช้ dependency ของแต่ละคน เท่ากับว่าทุกโปรเจคต้องมาset pathของdependency ทุกโปรเจค
ทางแก้ : Maven จะมี repositoryที่รวบรวม dependencyไว้ให้บนinternetโดยเราไม่ต้องห่วงว่าจะใช้dependencyตัวนี้จะต้องโหลดที่ไหน เพียงเราแค่กำหนดชื่อ กับversionของdependencyที่เราจะใช้เข้าไป config ที่ pom.xml นอกนั้Maven จะจัดทำการเรียกหาdependencyให้เราเอง

Dependency management
เจ้าdependency management ตัวนี้หรอจะพูดได้อีกอย่างว่า ตัวจัดการlibraryให้เรานั้นเอง เราแค่กำหนดชื่อ และversionให้เท่านั้น ก็จะทำการเลือกหา dpendencyมาให้เราใช้ในโปรเจคให้เราเอง

height=316

ในรูปนี้คือปัญหาของเราในการทำโปรเจค เพราะ แต่ละโปรเจคก็จะมีการเรียกใช้ depedency ที่ทั้งแตกต่างกันและซ้ำกัน โดยdepedencyที่ซ้ำกันไปเก็บไว้คนละที่กัน

height=311

เนื่องจากปัญหาดังรูปด้านบนที่ทำให้มีการเก็บdependencyที่เหมือนๆกันหลายที่โดยเจ้าmaven ก็เลยแก้ปัญหาโดยการสร้างที่เก็บกลาง หรือ local repository

height=288

ต่อจากภาพด้านบน เมื่อเราทำlocal repository หรือที่เป้นที่เก้บdependencyกลางนั้น แล้วเราจะเอาdependencyมาจากไหนละ?
คำตอบคือ Maven เตรียมให้เรียบร้อยแล้ว โดยเราจะทำการdownload dependencyที่เราจะใช้งานในinternet มาเก็บไว้ที่local repository นั้นเอง ถ้าสังเกตตอนใช้maven ครั้งแรกจะนานมากๆ เพราะต้องdownload dependency จากinternet มานั้นเอง
แล้วจากที่อ่านมาสงสัยรึเปล่าว่าทำไมในโปรเจคเราต้องใช้depedency ด้วยละ?
เนื่องจากJava นั้นมี libraryเป้นล้านแปด แล้วแต่ละตัวก็มีversionอีกมากมาย แล้วถ้าเราจะทำซักโปรเจคนึงเราต้องโหลดเจ้าlibraryเป็นล้านแปดมาหรอ? ฉะนั้นเราก็ต้องกำหนดเฉพาะที่จะใช้ในโปรเจคเท่านั้น
ทำไมใช้dependency แล้วต้องกำหนดversionด้วยละ?
อย่างที่ข้อด้านบนบอก library เองก็มีversionเยอะมากมายแล้ว ถ้าเกิดนายAใช้ version 1.2 แล้วนายAเกิดลาออกจากงานไป ทำให้นายBต่องมารับช่วงโปรเจคต่อ แล้วนายBไปใช้version 1.3 ละ คราวนี้ก็ซวยสิครับ ฉะนั้นเราจึงกำหนดversionให้มันอย่างละเอียดซะ จะได้ไม่เกิดปัญหาภายหลัง

Basic 1: Java ,Maven และ Eclipse

February 2nd, 2010

Basic 1: Java ,Maven และ Eclipse (Basic Series)

1. เตรียม Java environment
สามารถ download ได้จาก http://java.sun.com/javase/downloads/index_jdk5.jsp
จากนั้น ก็ setup  JAVA_HOME  (D:\Java\jdk1.6.0_17)
เพิ่ม path ให้ชี้ไปที่  %JAVA_HOME%\bin

จากนั้น ก็เทส C:\>java –version

2. เตรียม Maven
สามารถ download ได้จาก  http://maven.apache.org/download.html
จากนั้น setup  M2_HOME (D:\java\apache-maven-2.2.1)
เพิ่ม path ให้ชี้ไปที่ %M2_HOME%\bin

จากนั้น ก็เทส C:\>mvn –version

2.1 ต่อมาต้องจัดการ configure ที่ Maven ก่อน แก้ settings.xml อยู่ใน D:\java\apache-maven-2.2.1\conf
set > local repository ให้ชี้ไปที่ <localRepository>C:/java/.m2/repository</localRepository> ซึ่ง ไฟล์ทุกอย่างที่ ใช้ Maven จัดการจะถูกเก็บไว้ในนี้
» Read more: Basic 1: Java ,Maven และ Eclipse

Maven Installation Guide

March 13th, 2009

หนึ่งในสิ่งที่ต้องมีในวันที่ 21-22 คือ Apache Maven ครับเนื่องจากเราจะตัดปัญหาเรื่อง Project Structure โ ดยจะใช้ Structure มาตรฐานของ Maven ดังนั้นผลดีที่ตามมาคือเราสามารถใช้ IDE อะไรก็ได้ตามถนัดครับ (Netbeans, Eclipse และ IntelliJ) และจะใช้ command line ต่างๆในการสั่งงานเป็นหลัก

Apache Maven คืออะไรมันคือ Build Tool (แต่จริงๆทำได้มากกว่านั้น) เราจึงสามารถสั่ง Compile, Clean, Test, Pack, Deploy ได้นออกจากนี้ Maven เองยังช่วนเราในเรื่องของการทำ Labrary Management ได้อีกด้วยแต่ทำอย่างไรเดี๋ยวค่อยมาดูกันครับตอนนี้วัยรุ่นอยากรู้แล้วว่าจะติดตั้งอย่างไร “ง่ายมาก”

  1. Download ก่อนเลยโดยการสอนครั้งนี้จะใช้รุ่น Maven 2.0.10 ครับอย่างรอช้าไฟล์ขนาดไม่ใหญ่ครับ (ผมไม่แน่ใจสำหรับคนที่ใช้ Ubuntu ว่าสสามารถเรียก apt-get install maven ได้เลยหรือป่าวครับ) 
  2. คนที่ใช้ Windows ก็แตกมันออกไว้ในไดเรคทอรี่ที่เราต้องการเช่น D:\DEV\TOOLS\MAVEN\2010 ครับ
  3. จากนั้นไปสร้าง ENVIRONMENT_VARIABLE ชื่อ M2_HOME ให้มีค่าเท่ากับ D:\DEV\TOOLS\MAVEN\2010
  4. เพื่อให้สามารถเรียกใช้ Maven ได้จาก Command Prompt ต้องไปเพื่มที่อยู่ของคำสั่งที่ต้องการไว้ใน PATH โดยให้เพิ่ม $M2_HOME$\bin เข้าไป
  5. เรียบร้อยครับ จากนั้นให้เปิด Command Prompt แล้วพิมพ์ mvn-version เราจะได้คำตอบออกมาแบบนี้

Maven version: 2.0.10

Java version: 1.6.0_10

OS name: “windows xp” version: “5.1″ arch: “x86″ Family: “windows”

ต่อไปเราลองมาสร้าง Project โง่ๆหนึ่งอันเพื่อให้เราสามารถเข้าใจ Maven ได้ดีมากขึ้น

ไปที่ไดเรคทอรี่ที่เราใช้ทำงานเช่น D:\WORKSPACE\JAVA\SPRING66

พิมพ์คำสั่ง mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app ยาวไหมนี่ยังไม่ยาวเท่าไหร่นะเหอๆๆๆ หลังจากนี้มันจะไปโหลดอะไรวุ่นวายไปหมด อีกอย่างครับใช้ Maven ครั้งแรกต้องมีอินเทอร์เน็ทนะครับ ไม่เช่นนั้นตาย

คำสั่งนี้แปลว่าสร้างโปรเจคชื่อ my-app ครับโดยให้มีชื่อแพคเกจพื้นฐาน com.mycompany.app ครับโดยถ้าเราไปเปิดดูในโปรเจคเราจะเห็นไฟล์ชื่อ pom.xml หน้าตาเป็นแบบนี้

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

ไฟล์นี้คือพระเอกของเราเพราะมันจะเป็นตัวกำหนดรายละเอียดของโปรเจคของเรา นอกจากนี้ยังระบุไลบรารี่ที่เราจะต้องใช้ในโปรเจคนี้อีกต่างหาก โดยเราสามารถดูได้ที่บริเวณ dependencies ที่ต้องทำแบบนี้เนื่องจากในจาวาเองนั้น ไลบรารี่มีประมาณล้านแปด แต่ละตัวมีอีกสองล้านเวอร์ชั่น ดังนั้นถ้าทีมไม่มีมาตรฐานในการกำหนดเวอร์ชั่นของไลบรารี่แล้วนั้น ในกรณีที่มีคนทะลึ่งเปลี่ยนเวอร์ชั่นของไลบรารี่ไป ไม่บอกคนอื่น “นรก” รอเราอยู่ที่หน้าจอเพราะมันจะลำบากนิดหน่อย เหงื่อหยดสองเม็ด

ข้อดีอีกอย่างคือ ยกตัวอย่างเช่นเราใช้ JUnit 3.8.1 โปรเจคนี้ถ้าเป็นแต่เก่าก่อนเราต้องไปไล่หาเอาเองว่าแล้วไอ้ Junit เวอร์ชั่นนี้มันต้องใช้ไลบรารี่ตัวไหนอีกแต่ JUnit ไม่สะใจเอาเป็นว่าเราจะใช้ Hibernate Annotation ละกันเราต้องใช้อะไรบ้าง
วิธีการคือให้เพิ่ม dependency เข้าไปที่ dependencies ดังนี้

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.0.ga</version>
        </dependency>

ไม่ต้องรอช้าที่ root โปรเจคของเรา (ที่ที่มีไฟล์ pom.xml) พิพม์ mvn compile โลดมันจะเริ่ม download ไฟล์อีกแล้วเยอะแยะไปหมด สงสัยไหมว่ามันรู้ได้ไงว่าต้องโหลดอะไรบ้าง ถ้าสงสัยตามมา

ใครไม่สงสัยให้เลิกอ่านต่อ

สงสัยต้องรู้ก่อนว่าไฟล์ทั้งหมดที่ Maven ทำการ Download ลงมานั้นจะอยู่ที่ C:\Documents and Settings\twinp\.m2\repository สำหรับ *nix จะอยู่ที่ {home}/.m2/repository ครับ

ให้เราไปเปิดไดเรคทอรี่นี้ดูครับ {repository}\hibernate\hibernate-annotations\3.1beta4 จะพบไฟล์ชื่อ hibernate-annotations-3.1beta4.pom หน้าตาเป็นแบบนี้

<?xml version="1.0"?>
<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/maven-v4_0_0.xsd"
>
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-annotations</artifactId>
	<packaging>jar</packaging>
	<version>3.4.0.GA</version>

	<name>Hibernate Annotations</name>
	<description>Annotations metadata for Hibernate</description>
	<url>http://annotations.hibernate.org</url>

	<licenses>
		<license>
			<name>GNU LESSER GENERAL PUBLIC LICENSE</name>
			<url>http://www.gnu.org/licenses/lgpl.txt</url>
		</license>
	</licenses>

	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>ejb3-persistence</artifactId>
			<version>1.0.2.GA</version>
		</dependency>
        <dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-commons-annotations</artifactId>
			<version>3.1.0.GA</version>
		</dependency>
        <dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.3.0.SP1</version>
		</dependency>
		<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.4.2</version>
        </dependency>
        <dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
    </dependencies>

</project>

เดาได้แล้วใช่ไหมครับว่า ไลบรารี่แต่ละตัวในนี้ก็จะมีการบอกโลกว่า “จะใช้ฉัน ต้องไปหาใครมาด้วย” เล่นกันเราจึงหมดกังวลเรื่องการขึ้นต่อกันของไลบรารี่ไปได้ระดับหนึ่ง จบภาคนี้ครับภาคต่อไป

สร้าง Spring Project แรกด้วย Maven

January 5th, 2009

การเรียนแบบ Learning By Doing น่าจะเป็นการเีรียนรู้ที่ไม่น่าเบื่อที่สุดสำหรับการเรียนเรื่อง Development Framework ดังนั้นบทความใน series นี้จะเป็นเรื่องของการสอน spring แบบสนุกๆกันเพื่อให้ทุกคนสามารถเข้าใจ spring ได้ง่ายขึ้น โดยที่เรามากำหนด environment พื้นฐานกันก่อนว่าการเรียนการสอนของเราจะใช้อะไรบ้าง

jdk 1.5 ขึ้นไป
maven2 ขึ้นไป
netbeans6.1 ขึ้นไป (แต่อันนี้แล้วแต่สะดวกนะครับ)
spring2.5 ขึ้นไป
ก่อนอื่นใครไม่รู้จัก Maven ขอให้ไปอ่านทำความเข้าใจที่เวบของ Maven เองนะครับ โดยการใช้ Maven จะช่วยเหลือเรามากๆในเรื่องของการบริหาร project structure และเรื่องของ library dependency ที่เป็นเรื่องที่น่ากลัวมากสำหรับคนที่เขียน Java ไม่คล่องเพราะมันจะใช้ Library เยอะมากจนน่าปวดหัวแถมมีหลาย version ด้วย ดังนั้นการใช้ Maven จะทำให้เราลืมเรื่องพวกนี้ไปได้เลย

เริ่มด้วยการสร้าง Project แบบว่างๆโล่งก่อนนะครับ โดยให้ทุกท่านพิมพ์คำสั่งนี้ลงไปในที่ที่ต้องการ

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.spring66.tutorial -DartifactId=spring66-app

จากนนั้นเราจะได้โปรเจคชื่อ spring66-app มาพร้อมทั้งมี packeage พื้นฐาน com.spring66.tutorial มาให้พร้อม และถ้าเราเข้าไปใน spring66-app เราจะพบไฟล์ชื่อประหลาด pom.xml ให้เปิดไฟล์นี้ขึ้นมาครับหน้าตาจะประมาณนี้

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="...name space...">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring66.tutorial</groupId>
<artifactId>spring66-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>spring66-app</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.2</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

จากนั้นในกรณีที่เราต้องการใช้ Library พิเศษสิ่งที่เราต้องทำคือการเพิ่ม เข้าไปแต่คนส่วนใหญ่มักจะสงสัย “แล้วตูต้องใส่พระเจ้าเหาอะไรเข้าไปบ้างวะ” คำตอบคือไปหาำตอบที่ mvnrepository สำหรับตัวอย่างของ spring2.5 สามารดูได้ที่ url นี้ครับโดยให้เลื่อนลงไปดูที่ POM Dependency เ ราจะเห็น

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>

อย่ารีรอครับไปแทรกที่ เลยครับ ดังนั้นเราจะได้หน้าตาใหม่ของ pom.xml ในส่วนของ dependencies ดังนี้

&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;junit&lt;/groupId&gt;
&lt;artifactId&gt;junit&lt;/artifactId&gt;
&lt;version&gt;3.8.1&lt;/version&gt;
&lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
&lt;/dependencies&gt;

หลังจากนั้นให้ทำการพิมพ์คำสั่ง

mvn compile

จากนั้น “เดินไปกินกาแฟ กินข้าว เลานเกมส์ จีบหญิง” เพราะ Maven จะ download ไฟล์ปริมาณมหาศาลพอสมควรมาที่เครื่องเรา ไฟล์เหล่านั้นคือ libraries ต่างๆที่ spring ต้องการใช้ในการทำงาน หลังจากเรียบร้อยให้ทำการเปิด Project นี้ด้วย IDE ตัวโปรดครับสำหรับใครที่ใช้ Eclipse ให้ทำเพิ่มด้วยการพิมพ์คำสั่ง (ต้องลง Maven Plugin ด้วยนะครับเพราะเวลาเอาเข้าต้อง Import เป็น Maven Project)

mvn eclpse:eclipse

เข้าไป ส่วนใครใช้ Netbeasn ให้ลง plugin ชื่อ Maven ลงไปครับจากนั้นก็เปิดมาชมกัน จากแต่ก่อนที่เราต้องมานั่งหลังขดหลังแข็ง add ตัว library เองอันนี้เเราเปิดปุ๊ป ติดปั๊ปครับ

…..
[เสริม] ถ้าใครมีปัญหา ติด proxy ที่ office ก็สามารถเข้าไปแก้ file “setttings.xml” ได้ใน folder ของ maven เลย
ตัวอย่าง > apache-maven-2.0.9\conf\settings.xml

<!-- proxies
| This is a list of proxies which can be used on this machine to connect to the network.
| Unless otherwise specified (by system property or command-line switch), the first proxy
| specification in this list marked as active will be used.
|-->
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net,some.host.com</nonProxyHosts>
</proxy>
-->
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<host>192.168.0.21</host>
<port>9999</port>
</proxy>
</proxies>