Wednesday, March 08, 2006

Các bước tạo một project sạch dùng IntelliJ IDEA và Subversion

Chú ý: Để có thể thực hiện các bước này, bạn cần phải cài đặt cũng như cấu hình (nếu cần) các phần mềm sau: Apache web server (tại thời điểm hiện giờ download bản 2.0.55 do bản 2.2.0 không chạy được với Subversion 1.3.0), Subversion, TortoiseSVN, IntelliJ IDEA

Các bước thực hiện:

+ Tạo cấu trúc cho project (các folder, file cần thiết). Ví dụ:

[root] (tương ứng với thư mục gốc của repository)
|----- \doc
|----- \javadoc
|----- \lib
|----- \src
|----- \test
|----- \build.xml

+ Tạo repository cho project bằng TortoiseSVN
+ Import cấu trúc đã tạo ở trên vào repository bằng TortoiseSVN
+ Tạo một project rỗng trong IntelliJ IDEA
+ Thiết lập Version Control cho project vừa tạo là Subversion
+ Checkout các folder và file từ repository vừa tạo về thư mục của project
+ Tạo module
+ Thiết lập lại các thông số cấu hình của module (như thư mục src, test, javadoc, ... dựa trên cấu trúc đã checkout về) và thêm các thư viện nếu cần
+ Sau khi thực hiện xong bước trên, nếu bị hỏi "Do you want to schedule newly created file(s) for addition to Subversion?" thì nhấn Cancel bỏ qua lần đầu (mục đích là để tránh đẩy file .IML của IntelliJ IDEA lên Subversion)

Thực hiện đúng và đủ các bước trên, bạn đã hoàn thành việc tạo một project sạch dùng IntelliJ và Subversion

Thêm thắt:
+ Các bước trên thực hiện cho project có duy nhất một module. Nếu project của bạn có từ 2 module trở lên thì cách thực hiện sẽ hơi khác, vấn đề này để các bạn tự ngâm cứu.

+ Có một điều khó chịu là trên Windows, do một số phiên bản của ASP.NET không hỗ trợ tên thư mục có dấu chấm ở đầu (xem phần Official support for Windows '_svn' directories) nên trong IntelliJ IDEA, các thư mục của Subversion (_svn) được tạo trong quá trình checkout vào máy cứ... lòi ra mặc dù đúng ra nó phải được ẩn đi. Vấn đề này có thể giải quyết bằng cách vào Settings | General của IntelliJ IDEA, bổ xung "_svn" vào mục "Ignore files or folders". Lỗi này chắc chắn sẽ được sửa đổi trong phiên bản IntelliJ IDEA tiếp theo.

Giải thích về từ "sạch" trong tiêu đề của bài: Mục đích của bài viết là thiết lập một project có sử dụng Subversion để quản lý và IntelliJ IDEA để phát triển nhưng sẽ không có bất cứ một file nào của IntelliJ IDEA (như file project, workspace, module,...) được đẩy lên Subversion, do đó các developer khác không phải checkout các file thừa nếu họ không phát triển trên IntelliJ IDEA.

Cập nhật: Sử dụng kết hợp IntelliJ IDEA Demetra build 5175 với CVS thấy có khá nhiều lỗi tồi tệ. Trong khi với Subversion thì mọi việc tốt hơn nhiều. Theo kế hoạch thì tối nay, 9/3, JetBrains sẽ đưa ra build EAP mới của Demetra.

No comments: