ธีระยุทธ ทองเครือ...
TRANSCRIPT
1
ธระยทธ ทองเครอ
ภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตร
มหาวทยาลยขอนแกน
MavenMaven คอ เครองมอส ำหรบใชในกำรบรหำรจดกำร Project โดยมเปำหมำยคอ ชวย
ในกำร build project แบบอตโนมตMaven ใช Project Object Model (POM) ซงเปนไฟลขอมลเกยวกบกำรสรำง Project
ในรปแบบ XML นกพฒนำสำมำรถก ำหนดขอมล เชน รำยกำรไลบรำรทอำงอง (Dependency list) ชวยใหไมตองไปโหลดไฟล Library
เอง สวนกำรท ำ Unit Test กำรก ำหนด environment ตำงๆ
Maven มแมแบบ (archetype) ในกำรชวยสรำงแอปพลเคชนชนดตำงๆใน Eclipse ม Maven ตดมำแลว สำมำรถสรำง Project ในรปแบบ Maven ไดเลย
2
Java Build Tools
3
Maven ArchitectureCentral Maven Repository คอ Server ทใชเกบ Library ทงหมดLibrary ทถกอำงองมำใชแลว จะอยบน Local m2 Repository เพอใชกบ Project
อนๆไมตองโหลดใหมจำก Central Maven Repository ทกครง
4
อยท C:\User\{your-username}\.m2
อยท http://repo.maven.apache.org
การสราง Maven Web Project เลอกเมน File▸ New▸Maven Project
5
เลอกทน หำกไมตองกำรใชแมแบบ (archetype) ใชในกรณทสรำง Application ทวไป
การเลอกแมแบบ Project
6
เลอกใชแมแบบเวบแอปพลเคชน (Web application archetype)
ก าหนดชอกลม และชอ Project
7
ชอกลม Project - อำจใชชอ domain ขององคกรเจำของ project น ำมำเขยนจำกหลงไปหนำ
ชอ Project
สรางโฟลเดอรเกบโคด .javaแมแบบเวบแอปพลเคชนจะไมสรำงโฟลเดอรส ำหรบเกบไฟล .java มำให ใหสรำง
โฟลเดอรใหมเองชอ java ภำยใตโฟลเดอร mainคลกขวำทโฟลเดอร main เลอก New > Folder ใสชอโฟลเดอร "java"
8
โครงสรางโฟลเดอร Maven Project
9
โฟลเดอรเกบโคดไฟล .java
โฟลเดอรเกบไฟลเกยวกบเวบ เชน HTML, JSP, JavaScript, CSS, ไฟลภำพ
ทงสองสวนหมำยถงpath เดยวกน จะสรำงไฟลหรอเขำถงทสวนใดกได
ไฟลเกบขอมล Library ท Project ใช
โฟลเดอรเกบไฟล template
การเพมไลบรารส าหรบ Maven Project นกพฒนำสำมำรถน ำไลบรำรมำใช โดยหำไดจำก 2 แหลง
เวบไซตผสรำง Library โดยตรง Central Maven Repository
กำรเพม Library คอ กำรน ำชอ และรนของ Library มำเพมขอมลลงในไฟล pom.xml โดยวำงภำยใตแทก <dependencies></dependencies> หลงจำกบนทกไฟล pom.xml แลว Maven จะตดตอไปยง Maven Repository เพอโหลดไฟลทเกยวของมำเกบไวใน Project อตโนมต ดงนนหำกไมเคยใช Library นนในเครองทพฒนำใช จะตองตอ internet ดวย
กำรโหลด Library จำก Maven Repository จะท ำเฉพำะครงแรกและครงเดยวเทำนน หำกเปนLibrary ทเคยเรยกใชแลวจะน ำไฟลจำก cache มำเพมใหโดยไมมกำรดำวนโหลดใหม
10
การคนหาชอ Library จาก Maven Repository นกพฒนำสำมำรถคนหำชอ Library เพอน ำมำก ำหนดใชใน Projectไดจำก
http://search.maven.org
11
ชอของ Library ทจะ copyไปวำงไวในไฟล pom.xml
ระบ keyword ของ Library ทตองกำรคนหำ
ตวอยางไฟล pom.xml
12
<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.teejung</groupId><artifactId>firstmaven</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>6.0.5</version>
</dependency>
</dependencies>
</project>
ขอมล Projectแทกใชครอบชอ Library
ทงหมดของ Project
แทก dependency ใชครอบชอ 1 Library
ตวอยางไลบรารทถกโหลดแบบอตโนมต
13
ไฟล Library ท Maven โหลดมำใหอตโนมต
หำกมกำรลบแทก <dependency> ของไลบรำรใดออก ไฟล .jar กจะถกดงออกจำก Project แบบอตโนมตแตไฟล .jar นนยงเกบพก (cache) ไวในโปรแกรม Eclipse อย จะถกน ำกลบมำใชไดเมอมกำรเพมไลบรำรอกครงใน Project ใดๆกได
การใช Library ทโหลดเสรจแลว
เมอได Library ทตองกำรแลว ไฟลตำงๆจะอยใน Class Path อตโนมต
นกพฒนำสำมำรถ import ในโคดโปรแกรม อำงองคลำสจำก Library ท Maven โหลดมำใชไดทนท
14