14
1 ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น

ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

1

ธระยทธ ทองเครอ

ภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตร

มหาวทยาลยขอนแกน

Page 2: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

MavenMaven คอ เครองมอส ำหรบใชในกำรบรหำรจดกำร Project โดยมเปำหมำยคอ ชวย

ในกำร build project แบบอตโนมตMaven ใช Project Object Model (POM) ซงเปนไฟลขอมลเกยวกบกำรสรำง Project

ในรปแบบ XML นกพฒนำสำมำรถก ำหนดขอมล เชน รำยกำรไลบรำรทอำงอง (Dependency list) ชวยใหไมตองไปโหลดไฟล Library

เอง สวนกำรท ำ Unit Test กำรก ำหนด environment ตำงๆ

Maven มแมแบบ (archetype) ในกำรชวยสรำงแอปพลเคชนชนดตำงๆใน Eclipse ม Maven ตดมำแลว สำมำรถสรำง Project ในรปแบบ Maven ไดเลย

2

Page 3: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

Java Build Tools

3

Page 4: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

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

Page 5: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

การสราง Maven Web Project เลอกเมน File▸ New▸Maven Project

5

เลอกทน หำกไมตองกำรใชแมแบบ (archetype) ใชในกรณทสรำง Application ทวไป

Page 6: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

การเลอกแมแบบ Project

6

เลอกใชแมแบบเวบแอปพลเคชน (Web application archetype)

Page 7: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

ก าหนดชอกลม และชอ Project

7

ชอกลม Project - อำจใชชอ domain ขององคกรเจำของ project น ำมำเขยนจำกหลงไปหนำ

ชอ Project

Page 8: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

สรางโฟลเดอรเกบโคด .javaแมแบบเวบแอปพลเคชนจะไมสรำงโฟลเดอรส ำหรบเกบไฟล .java มำให ใหสรำง

โฟลเดอรใหมเองชอ java ภำยใตโฟลเดอร mainคลกขวำทโฟลเดอร main เลอก New > Folder ใสชอโฟลเดอร "java"

8

Page 9: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

โครงสรางโฟลเดอร Maven Project

9

โฟลเดอรเกบโคดไฟล .java

โฟลเดอรเกบไฟลเกยวกบเวบ เชน HTML, JSP, JavaScript, CSS, ไฟลภำพ

ทงสองสวนหมำยถงpath เดยวกน จะสรำงไฟลหรอเขำถงทสวนใดกได

ไฟลเกบขอมล Library ท Project ใช

โฟลเดอรเกบไฟล template

Page 10: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

การเพมไลบรารส าหรบ 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

Page 11: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

การคนหาชอ Library จาก Maven Repository นกพฒนำสำมำรถคนหำชอ Library เพอน ำมำก ำหนดใชใน Projectไดจำก

http://search.maven.org

11

ชอของ Library ทจะ copyไปวำงไวในไฟล pom.xml

ระบ keyword ของ Library ทตองกำรคนหำ

Page 12: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

ตวอยางไฟล 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

Page 13: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

ตวอยางไลบรารทถกโหลดแบบอตโนมต

13

ไฟล Library ท Maven โหลดมำใหอตโนมต

หำกมกำรลบแทก <dependency> ของไลบรำรใดออก ไฟล .jar กจะถกดงออกจำก Project แบบอตโนมตแตไฟล .jar นนยงเกบพก (cache) ไวในโปรแกรม Eclipse อย จะถกน ำกลบมำใชไดเมอมกำรเพมไลบรำรอกครงใน Project ใดๆกได

Page 14: ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ ... - maven.pdf · Maven มีแม่แบบ

การใช Library ทโหลดเสรจแลว

เมอได Library ทตองกำรแลว ไฟลตำงๆจะอยใน Class Path อตโนมต

นกพฒนำสำมำรถ import ในโคดโปรแกรม อำงองคลำสจำก Library ท Maven โหลดมำใชไดทนท

14