Lập trình Java theo nhóm sử dụng Eclipse và SVN
2. Các cài đặt đòi hỏi
Đây là mô hình làm việc theo nhóm Java sử dụng Eclipse và SVN:
VisualSVN Server
Để có SVN Repository bạn cần phải cài đặt SVN Server chẳng hạn Visual SVN trên một máy tính nào đó, nó sẽ là một máy chủ SVN. Bạn có thể xem hướng dẫn cài đặt và cấu hình Visual SVN tại:
XP-Dev
Trong trường hợp bạn không có SVN Server. Bạn có thể đăng ký một tài khoản XP-DEV để có một SVN Repository miễn phí với dung lượng lên tới 1.5G đủ để dùng cho nhóm làm việc. Xem hướng dẫn đăng ký & sử dụng XP-DEV tại:
Subversive
Tiếp theo trên mỗi chương trình Eclipse của mỗi thành viên phải cài đặt Subversive. Bạn có thể xem hướng dẫn tại:
3. Chia sẻ Project lên SVN Repository
Trước hết cần một thành viên trong nhóm chia sẻ code dự án ban đầu lên SVN Repository (Kho chứa SVN).
Hình minh họa dưới đây minh họa 3 project có trên máy tính của một thành viên trong nhóm. Chúng ta sẽ chia sẻ 3 project này lên SVN Server.
Trên Visual SVN đã tạo sẵn một Repository có tên JavaProjects.
Copy URL:
URL Copy được có thể chứa tên của máy chủ SVN.
- https://TRAN-VMWARE/svn/JavaProjects/
Bạn có thể thay đổi tên máy chủ bằng địa chỉ IP.
Nếu bạn sử dụng XP-DEV và tạo một SVN Repository, bạn cũng sẽ có URL tương ứng, hãy sử dụng URL này.
Quay trở lại với Eclipse.
Chúng ta sẽ chia sẻ 2 Project: ProjectController & ProjectModel lên Repository JavaProjects:
2 Project: ProjectController & ProjectModel đã được chia sẻ lên SVN Server.
Trong một thời điểm nào đó bạn muốn chia sẻ tiếp Project khác cũng lên trên Repository có sẵn (Chẳng hạn JavaProjects). Chúng ta tiếp tục chia sẻ Project ProjectView lên SVN Repository JavaProjects
Project ProjectView đã được chia sẻ lên Repository.
Đây là hình ảnh nhìn trên Visual SVN Server:
4. Checkout Project từ SVN Repository
Các thành viên khác trong nhóm sẽ checkout các Project từ trên Repository về máy tính của mình.
Giả sử rằng chúng ta chỉ lấy 2 Project, Project còn lại sẽ lấy về sau.
2 Project đã được checkout.
Chúng ta tiếp tục checkout Project khác (Chẳng hạn như nó mới được chia sẻ bởi một người nào đó trong nhóm).
5. Commit và Update
Checkout là hành động lấy toàn bộ dữ liệu 1 hoặc nhiều Project được chia sẻ trên Repository xuống máy địa phương (Khi máy địa phương chưa có Project đó). Sau đó dữ liệu được sửa đổi tại địa phương. Sử dụng chức năng Commit để đẩy dữ liệu đã thay đổi lên Repository. Và sử dụng chức năng Update để lấy dữ liệu có thay đổi về.
Bây giờ chúng ta sẽ sửa (hoặc thêm) file trên các Project, và Commit lên Repository.
Để đưa các dữ liệu đã thay đổi lên SVN Repository. Nhấn phải chuột vào Project hoặc chọn file đã thay đổi, chọn Team/Commit.
Tất cả các thêm mới và thay đổi đã được Commit lên SVN Repository.
Tại Eclipse của các thành viên khác có thể sử dụng chức năng Update để cập nhập các dữ liệu thêm mới hoặc thay đổi.
Chú ý: Trong một số trường hợp việc Commit bị báo lỗi, bạn cần phải Update trước khi Commit.
6. Các chức năng cơ bản
SVN có nhiều chức năng, được minh họa như hình dưới đây:
Chúng ta sẽ tìm hiểu cách sử dụng của một vài chức năng quan trọng.
Add to svn:ignore
Trường hợp bạn có một thư mục hoặc file muốn SVN bỏ qua, không đưa lên SVN Repository. Bạn có thể sử dụng chức năng: Add to svn:ignore
Chẳng hạn bạn có một thư mục chứa các file dữ liệu không muốn chia sẻ lên như hình minh họa dưới đây:
Nhấn phải chuột vào thư mục mynote, chọn Team/Add to svn:ignore
Nếu việc Commit bị lỗi như hình minh họa dưới đây:
Trong trường hợp này bạn cần phải Update project trước khi Commit.
Revert
Revert sử dụng để trả lại dữ liệu ban đầu. Chẳng hạn khi bạn sửa đổi dữ liệu của một vài file, revert giúp cho file trở lại như trước khi thay đổi.
Lock & Unlock
Bạn đang sửa một vài file tại máy địa phương. Và trong quá trình sửa bạn không muốn một người nào đó trong nhóm Commit dữ liệu các file đó lên Repository, bạn có thể sử dụng chức năng Lock để khóa lại. Sau khi sửa đổi xong, bạn có thể Commit và sử dụng chức năng Unlock để mở khóa.
Cleanup
Bạn sửa đổi một vài file và Commit lên SVN Repository. Nhưng nhận được thông báo lỗi khi một trong những file đó đang bị Lock bởi một ai đó. Cleanup cho phép giải phóng việc khóa một cách ép buộc. Bạn không thể sử dụng chức năng Unlock trong trường hợp này, vì nó chỉ sử dụng cho người đã Lock file đó.
Disconnect
Project của bạn đang kết nối với SVN Repository.
Nếu xem trên thư mục Project tại ổ cứng, bạn sẽ thấy tại mỗi thư mục có một thư mục ẩn .svn, đó là các thư mục chứa thông tin tình trạng và dữ liệu các file của SVN (Nó giống kiểu một kho chứa địa phương).
Nhấn phải chuột vào một Project và chọn Team/Disconnect sẽ giúp ngắt kết nối với SVN Repository.
Việc Disconnect có 2 lựa chọn:
- Vừa disconnect vừa xóa hết các SVN meta-information
- Lựa chọn này sẽ làm xóa hết các thư mục ẩn .svn trên tất cả các thư mục trong Project, trường hợp này không thể kết nối lại, nếu muốn kết nối lại chỉ có cách xóa Project trên ổ cứng và Checkout lại.
- Hoặc chỉ disconnect.
- Lựa chọn này đơn giản chỉ là ngắt kết nối. Các SVN meta-information vẫn được giữ lại.
Dưới đây tôi minh họa sử dụng lựa chọn 2:
Bạn có thể kết nối lại, bằng cách nhấn phải chuột vào Project và chọn: Team/Share Project...
Java cơ bản
- Tùy biến trình biên dịch java xử lý Annotation của bạn (Annotation Processing Tool)
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Hướng dẫn và ví dụ Java WeakReference
- Hướng dẫn và ví dụ Java PhantomReference
- Hướng dẫn nén và giải nén trong Java
- Cấu hình Eclipse để sử dụng JDK thay vì JRE
- Phương thức String.format() và printf() trong Java
- Cú pháp và các tính năng mới trong Java 5
- Cú pháp và các tính năng mới trong Java 8
- Hướng dẫn sử dụng biểu thức chính quy trong Java
- Hướng dẫn lập trình đa luồng trong Java - Java Multithreading
- Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
- Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu
- Lấy các giá trị của các cột tự động tăng khi Insert một bản ghi sử dụng JDBC
- Hướng dẫn và ví dụ Java Stream
- Functional Interface trong Java
- Giới thiệu về Raspberry Pi
- Hướng dẫn và ví dụ Java Predicate
- Abstract class và Interface trong Java
- Access modifier trong Java
- Hướng dẫn và ví dụ Java Enum
- Hướng dẫn và ví dụ Java Annotation
- So sánh và sắp xếp trong Java
- Hướng dẫn và ví dụ Java String, StringBuffer và StringBuilder
- Hướng dẫn xử lý ngoại lệ trong Java - Java Exception Handling
- Hướng dẫn và ví dụ Java Generics
- Thao tác với tập tin và thư mục trong Java
- Hướng dẫn và ví dụ Java BiPredicate
- Hướng dẫn và ví dụ Java Consumer
- Hướng dẫn và ví dụ Java BiConsumer
- Bắt đầu với Java cần những gì?
- Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK
- Cài đặt Java trên Windows
- Cài đặt Java trên Ubuntu
- Cài đặt OpenJDK trên Ubuntu
- Cài đặt Eclipse
- Cài đặt Eclipse trên Ubuntu
- Học nhanh Java cho người mới bắt đầu
- Lịch sử của bit và byte trong khoa học máy tính
- Các kiểu dữ liệu trong Java
- Các toán tử Bitwise
- Câu lệnh rẽ nhánh (if else) trong Java
- Câu lệnh rẽ nhánh switch trong Java
- Vòng lặp trong Java
- Mảng (Array) trong Java
- JDK Javadoc định dạng CHM
- Thừa kế và đa hình trong Java
- Hướng dẫn và ví dụ Java Function
- Hướng dẫn và ví dụ Java BiFunction
- Ví dụ về Java encoding và decoding sử dụng Apache Base64
- Hướng dẫn và ví dụ Java Reflection
- Hướng dẫn gọi phương thức từ xa với Java RMI
- Hướng dẫn lập trình Java Socket
- Các nền tảng nào bạn nên chọn để lập trình ứng dụng Java Desktop?
- Hướng dẫn và ví dụ Java Commons IO
- Hướng dẫn và ví dụ Java Commons Email
- Hướng dẫn và ví dụ Java Commons Logging
- Tìm hiểu về Java System.identityHashCode, Object.hashCode và Object.equals
- Hướng dẫn và ví dụ Java SoftReference
- Hướng dẫn và ví dụ Java Supplier
- Lập trình Java hướng khía cạnh với AspectJ (AOP)
Show More
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java Collections Framework
- Java API cho HTML & XML
- Các hướng dẫn Java IO
- Các hướng dẫn Java Date Time
- Các hướng dẫn Spring Boot
- Các hướng dẫn Maven
- Các hướng dẫn Gradle
- Các hướng dẫn Java Web Services
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Cloud
Các hướng dẫn Subversion (SVN)
- Cài đặt và quản lý Visual SVN Server
- Lập trình C# theo nhóm sử dụng Visual Studio và SVN
- Sử dụng SVN Repository miễn phí XP-Dev
- Cài đặt và sử dụng Tortoise SVN
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Lập trình theo nhóm sử dụng XCode và SVN
- Cài đặt AnkhSVN trên Windows
Show More