Prototype for Training Day, please try dude!!!

March 16th, 2009 by roofimon Leave a reply »

ตอนนี้ Project สำหรับ Train วันเสาร์เรียบ้อยไปส่วนหนึ่งแล้วแต่มีสิ่งที่น่าเป็นห่วงอยู่เล็กน้อย คือเนื่องจากวันนั้นเพื่อไม่ให้เป็นการเสียเวลาเรื่องการ download ไลบรารี่จึงอยากให้ทุกท่านที่จะไปร่วมงานช่วยทำตามคำแนะนำนี้ด้วยครับ

  1. option ลง Netbeans 6.7 M2 พร้อมทั้งติดตั้ง Maven Plugin ให้เรียบร้อยซึ่งง่ายมาก
  2. ลง MySQL5.x ที่เครื่อง
  3. สร้าง Database ชื่อ spring66
  4. สร้าง working directory ที่ d:\workspace\spring66-training จากนั้นทำการ export source ออกมาจาก google code ที่ url นี้ (ใช้ account google ครับแต่ password ใช้ของ google project นะครับอยู่ใน profile/setting)

https://spring66-training.googlecode.com/svn/trunk

จากนั้นยังไม่ต้องทำอะไรมากครับเข้าไปที่ root ของโปรเจค (ที่มีไฟล์ pom.xml) เรียก mvn compile ครับ

ใครทำแล้วไม่ขึ้น BUILD SUCCESSFUL ช่วย comment หรือ tweet ด้วยครับ

**** มีบางส่วนต้องทำมือครับเช่น jta1.0.1B เราต้องไป download ไฟล์ที่นี่ก่อนครับ

http://java.sun.com/javaee/technologies/jta/index.jsp

แต่ไฟล์ท่ได้มาจะเป็น zip ไฟล์และชื่อไม่ตรงตามที่เราต้องการ ทางออกให้แก้ชื่อเป็น jta-1.0.1B.jar ครับ

จากนั้นให้วางไฟล์ .jar ที่ได้มาตามตำแหน่งที่ต้องการ เช่น ที่ root ของโปรเจค(ของผม D:\workspace\spring66-training) จากนั้นสั่งให้ maven ทำการ add ไฟล์นี้เข้าไปใน repository ด้วยคำสั่ง

mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=D:\workspace\spring66-training\jta-1.0.1B.jar

Advertisement

17 comments

  1. D:\wordspace\ => D:\workspace\

  2. him_aeng says:

    เอ่อ! username กับ password คืออะไรครับ

  3. roofimon says:

    @him_aeng อ่านตัวแดงๆอ่ะครับที่ content

  4. him_aeng says:

    คือ ไม่เข้าใจตรงที่พี่บอกว่า

    “แต่ password ใช้ของ google project นะครับอยู่ใน profile/setting)”

    อ่ะครับ ไม่รู้ว่า password คืออะไร รบกวนด้วยครับ

  5. him_aeng says:

    นี่ผมก็เลยต้องทำการ svn จาก http://spring66-training.googlecode.com/svn/trunk

    คือ ใช้แบบ anonymously check out ไปเลย

    ว่าแต่ ระหว่าง url ที่พี่แนะนำมา (https://...) กับแบบ anonymousely check out นั้น ผลที่ได้มันต่างกันมั๊ยครับ

  6. Complexity says:

    password ดูได้ตรง profile >> setting ครับ ซึ่งเมนู profile จะเห็นได้ต้อง login เข้าไปที่ googlecode ก่อน http://code.google.com/hosting/ เป็นต้น

  7. him_aeng says:

    ขอบคุณมากครับ ทำได้แล้ว แบบว่าไม่เคยใช้บริการ googlecode อ่ะครับ อิอิ

  8. him_aeng says:

    compile ผ่านแล้ว

    แต่ติดใจอยู่อย่าง ทำไม Maven ไม่ออกแบบมาให้ทำงานแบบ Offline ได้นะ แบบนี้จะ compile ทีก็ต้องต่อ internet ที หยั่งงี้ไปเรื่อยๆ ก็ไม่ work นา

    อืมแต่คิดอีกมุมหนึ่ง มันก็สะดวกดีจริงๆ นั่นแหละ แค่กำหนดใน pom.xml แล้วที่เหลือ Maven ก็จะจัดการ Download ให้หมด สะดวกดีจริงๆ

  9. roofimon says:

    @him_aeng คือว่า library บางตัวก็ไม่สามารถหาได้บน repository น่ะครับ JTA เป้นตัวอย่างที่ดีครับ แต่อย่างไรก็ตาม ยกตัวอย่างเช่น compile แล้ว maven จะทำการ load สิ่งที่เราต้องการมาไว้ที่เครื่องครับ ครั้งต่อๆไปที่เราใช้ก็ไม่จำเป็นต้อง Load อีก
    ยกเว้นเราต้องการใช้ Library ใหม่กว่าที่เรามีครับ

  10. him_aeng says:

    ถ้าอย่างนั้นเวลาที่เราอยากจะให้ Maven รู้จักกับ library ตัวไหนที่ไม่มีใน repository แล้ว ก็ต้องทำตามวิธีการ install เหมือนกับที่ทำกับ JTA ใช่มั๊ยครับ

    อืมม ก็ง่ายดีนะครับ

    เดี๋ยวไปอบรมกับอาจารย์เสร็จจะได้ลองเอาไปใช้จริงกับ Flex + Spring + BlazeDS ได้

  11. enjoy127 says:

    อ๋อ ทำแบบนี้ ได้ด้วยเหรอเนี่ย เพิ่งรู้วิธี add file ใน repository .. ขอบคุณคับ
    แต่รู้สึกว่าเรื่องปัญหา jta-1.0.1B.jar จะมี องค์กร ใจดี จัดไว้ให้แล้ว นั่นก็คือ “Java Dev repository” .. จะมี ไฟล์ jta-1.0.1B.jar ใน http://download.java.net/maven/2/javax/transaction/jta/1.0.1B/ คับ ลองดู ๆ ๆ

    <project ... >
    .
    .
    .
    .
    .
    .
    .
    .
    <repositories>
    <repository>
    <id>maven-repository.dev.java.net</id>
    <name>Java Dev Net Repository</name>
    <url>http://download.java.net/maven/2/</url>
    <releases>
    <enabled>true</enabled>
    <updatePolicy>never</updatePolicy>
    </releases>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    </repository>
    </repositories>
    </project>

  12. roofimon says:

    @enjoy127 ขอบคุณครับเป็นประโยชน์มากๆครับ ไอ้ผมก็ rename มาหลายปี :)

  13. แจ่มมากเลยครับคุณ enjoy127

  14. ใช้ Google Code ครั้งแรกเหมือนกันครับ :P
    ใครหา password ไม่เจอไป url นี้เลยครับ http://code.google.com/hosting/settings

    ของผมตอนแรกไม่ได้ (ใช้ TortoiseSVN) ต้องกด regenerate password แล้วรอสักพักถึงได้

    สรุปช่วงท้ายของไฟล์ pom.xml ให้แก้ตามที่คุณ enjoy127 บอกมาก็จะได้แบบนี้ครับ

    <?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/maven-v4_0_0.xsd"&gt;
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.spring66.training</groupId>
    <artifactId>spring66-training</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>spring66-training</name>
    <url>http://maven.apache.org</url>
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <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>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <encoding>UTF-8</encoding>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    <dependencies>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.3.0.ga</version>
    </dependency>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>3.3.0.ga</version>
    </dependency>
    <dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.8.0</version>
    </dependency>
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.2.2</version>
    </dependency>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.4</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>2.5.6</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>2.5.6</version>
    </dependency>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.1.2</version>
    </dependency>
    <dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    </dependency>
    <dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.5.4</version>
    </dependency>
    <dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.5.4</version>
    </dependency>
    <dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.0.1B</version>
    </dependency>
    </dependencies>
    <repositories>
    <repository>
    <id>maven-repository.dev.java.net</id>
    <name>Java Dev Net Repository</name>
    <url>http://download.java.net/maven/2/</url>
    <releases>
    <enabled>true</enabled>
    <updatePolicy>never</updatePolicy>
    </releases>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    </repository>
    </repositories>
    </project>

    ป.ล. กำลังสงสัยว่า repository ของ maven แบบของ java.net นี่เราสร้างเองเป็น local ได้ยังไงบ้าง เพราะถ้า developer หลายๆคนทำงานใน office เดียวกันแต่ต้อง download lib ใหม่ตอนเริ่ม project จาก internet แบบนี้ เปลือง bandwidth นะเนี่ย หรือถ้ามี lib ส่วนตัว จะได้ไม่ต้อง manual add ทุกคน

  15. roofimon says:

    @เอี้ยก้วย ทำได้ครับเดี๋ยวมีคนตอบวันจริงครับ

  16. ผมว่ารูปนี้ตอบได้บ้างนะครับ

  17. him_aeng says:

    แล้วตกลงกำหนดการณ์ ในวันพรุ่งนี้เป็นไงบ้างครับ แบบว่าห้องไหน เวลาเท่าไหร่ถึงเท่าไหร่อ่ะครับ?

    รบกวนถามด้วยครับ

Leave a Reply

You must be logged in to post a comment.