Khung công tác Spring đã được phát hành vào cuối năm 2002 để đơn giản hóa việc phát triển
J2EE (bây giờ là JavaEE). Trong tám năm qua, Spring đã thực hiện thành công nhiệm vụ này
bằng cách đưa ra các khung công tác hoặc các tính năng cộng đồng Java như Bảo mật Spring
(Spring Security), Spring MVC (Spring Model-View-Controller - Bộ điều khiển Khung nhìn-Mô
hình của Spring), quản lý giao dịch, bó Spring và tích hợp Spring, là dễ hiểu và dễ sử dụng hơn.
Spring đã muốn làm cho nhà phát triển Java thực hiện dễ dàng hơn và hiệu quả hơn. Để thực
hiện việc này, Spring đã tạo ra một công cụ phát triển được gọi là Spring Roo.
13 trang |
Chia sẻ: lylyngoc | Lượt xem: 1674 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Giới thiệu Spring Roo, Phần 1: Xây dựng từ nguồn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Giới thiệu Spring Roo, Phần 1: Xây dựng từ nguồn
Giới thiệu
Khung công tác Spring đã được phát hành vào cuối năm 2002 để đơn giản hóa việc phát triển
J2EE (bây giờ là JavaEE). Trong tám năm qua, Spring đã thực hiện thành công nhiệm vụ này
bằng cách đưa ra các khung công tác hoặc các tính năng cộng đồng Java như Bảo mật Spring
(Spring Security), Spring MVC (Spring Model-View-Controller - Bộ điều khiển Khung nhìn-Mô
hình của Spring), quản lý giao dịch, bó Spring và tích hợp Spring, là dễ hiểu và dễ sử dụng hơn.
Spring đã muốn làm cho nhà phát triển Java thực hiện dễ dàng hơn và hiệu quả hơn. Để thực
hiện việc này, Spring đã tạo ra một công cụ phát triển được gọi là Spring Roo.
Spring Roo (xem phần Tài nguyên) là một công cụ RAD (Rapid Application Developer - Nhà
phát triển ứng dụng nhanh chóng) nguồn mở dựa trên văn bản, mở rộng cho công nghệ Java. Nó
là tài nguyên mạnh mẽ để tạo và quản lý các ứng dụng dựa trên Spring. Dưới đây là tuyên bố về
nhiệm vụ:
Nhiệm vụ của Roo là để cải thiện cơ bản và bền vững năng suất cho nhà phát triển Java mà
không ảnh hưởng đến tính toàn vẹn hoặc tính linh hoạt kỹ thuật.
Nhiệm vụ này được chuyển thành một công cụ được xây dựng trên công nghệ Java, làm tăng
năng suất một cách bền vững trên toàn bộ vòng đời của một dự án và không gắn chặt các nhà
phát triển vào một cách tiếp cận cụ thể. Spring Roo sử dụng các thư viện phổ biến, đã được
chứng minh và hoàn thiện như khung công tác Spring, Java Persistence API (JPA), Java Server
Pages (JSP), Spring Security, Spring Web Flow, Log4J và Maven. Các ứng dụng do Roo tạo ra
đều sử dụng các tiêu chuẩn như Bean Validation (JSR-303) và Dependency Injection (JSR-330)
và theo kiến trúc ứng dụng thực hành tốt nhất có chứng chỉ-SpringSource.
Khi sử dụng công cụ Spring Roo, bạn có thể bổ sung và cấu hình các tính năng như JPA, Spring
MVC, Spring Security, Logging using Log4j (Ghi nhật ký bằng cách sử dụng Log4j), thử
nghiệm các khung công tác như JUnit và Selenium, Solr, JMS (Java Message Service - Dịch vụ
thông báo Java), email và nhiều hơn nữa, chỉ đơn giản bằng cách gõ lệnh vào trình vỏ Roo. Thời
gian đã tiết kiệm được khi sử dụng Roo để bổ sung các tính năng này làm tăng năng suất của nhà
phát triển. Roo không thể viết logic nghiệp vụ, nhưng nó có thể quản lý cơ sở hạ tầng hoặc cấu
hình của một ứng dụng.
Roo là một công cụ trong thời gian phát triển, có nghĩa là một ứng dụng độc lập của Roo trong
thời gian chạy. Như Roo không tồn tại trong thời gian chạy, nó không có bất kỳ tiêu tốn hoạt
động bộ nhớ hay hiệu năng nào. Điều này đảm bảo rằng bạn không gắn chặt với Spring Roo và
bạn có thể loại bỏ Roo khỏi dự án don't knocủa mình bất kỳ thời điểm nào bằng một vài nhấn
phím.
Bài này thảo luận về việc xây dựng một ứng dụng web đơn giản bằng cách sử dụng trình vỏ Roo
và trình bày cách xây dựng mã nguồn Spring Roo trên các máy tính Windows hoặc Ubuntu.
Về đầu trang
Bắt đầu với trình vỏ Roo
Bạn có thể quản lý và cấu hình một ứng dụng bằng cách tải trình vỏ Roo và tương tác với nó
bằng cách sử dụng các lệnh. Trình vỏ Roo là trình vỏ lệnh có gợi ý, nhận biết ngữ cảnh, hoàn
thành bằng phím tab. Bạn có thể sử dụng các lệnh gợi ý để hỏi Spring Roo về hành động logic
tiếp theo của mình. Roo đủ thông minh để đề xuất các hành động tiếp theo bằng cách xác định
ngữ cảnh của ứng dụng của bạn. Ví dụ, hãy nói rằng bạn đã tạo ra một thực thể bằng cách sử
dụng lệnh entity (tạo thực thể). Sau đó, bạn gõ lệnh hint (gợi ý). Roo sẽ cho bạn biết là bạn
cần thêm các trường cho thực thể của bạn bằng cách sử dụng lệnh field (tạo trường). Tính năng
này làm giảm trọng số dựa theo khái niệm của Roo và làm cho nó trở thành một công cụ học tập
rất tốt. Bạn có thể tạo ra ứng dụng đầy đủ sau lệnh help (trợ giúp) và lệnh hint của Roo mà
không bao giờ cần tham khảo tài liệu hướng dẫn của nó.
Các điều kiện tiên quyết
Trước khi bạn bắt đầu làm việc với Roo, hãy chắc chắn bạn đã có các thứ sau đây đã cài đặt:
1. Java V6 JDK (Java Software Development Kit - Bộ công cụ phát triển phần mềm Java).
2. Apache Maven V2.0.9 hoặc cao hơn.
Cài đặt Spring Roores
Để cài đặt Spring Roo độc lập:
1. Bạn có thể tải về trình vỏ dòng lệnh độc lập của Roo hoặc sử dụng trình cắm thêm STS
(SpringSource Tool Suite - Bộ công cụ SpringSource) dựng sẵn của Roo. Tôi muốn đề
nghị bạn tải về cả hai và sử dụng chúng cùng nhau vì STS cung cấp nhiều tính năng bổ
sung trên Eclipse cho các ứng dụng dựa trên-Spring.
a. Spring Roo
b. SpringSource Tool Suite
2. Giải nén Spring Roo đến vị trí đã chọn của bạn.
3. Thiết lập biến môi trường:
a. Trên một máy tính Windows, thêm %ROO_HOME% /bin vào đường dẫn nơi có
ROO_HOME là đường dẫn đến các tệp giải nén của Roo.
b. Trên một máy tính *nix hãy tạo ra một liên kết ký hiệu đến
$ROO_HOME/bin/roo.sh
(ví dụ, sudo ln -s ~/spring-roo-1.x.x/bin/roo.sh /usr/bin/roo)
Xây dựng một ứng dụng
Để hiển thị cho bạn sức mạnh của Roo, hãy tạo ra một ứng dụng hội nghị doanh nghiệp đơn giản.
Một ứng dụng hội nghị có hai thực thể: Người nói (Speaker) và Cuộc thảo luận (Talk). Một
Người nói có thể đưa ra một hoặc nhiều Cuộc thảo luận và một Cuộc thảo luận sẽ chỉ do một
người nói đưa ra. Biểu đồ lớp đơn giản được hiển thị trong Hình 1.
Hình 1. Speaker Talk của Biểu đồ lớp
Tạo ứng dụng:
1. Mở trình vỏ dòng lệnh của hệ điều hành của bạn.
2. Tạo một thư mục có tên conference (hội nghị) bằng cách sử dụng lệnh tạo thư mục
mkdir.
3. Chuyển đến thư mục conference trong trình vỏ của bạn.
4. Gõ roo. Lệnh này sẽ khởi động trình vỏ Roo như trong Liệt kê 1.
Liệt kê 1. Khởi động trình vỏ Roo
C:\Users\xebia\demo\conference>roo
____ ____ ____
/ __ \/ __ \/ __ \
/ /_/ / / / / / / /
/ _, _/ /_/ / /_/ /
/_/ |_|\____/\____/ 1.1.B.RELEASE [rev 793f2b0]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit
ENTER.
roo>
Bây giờ chúng ta ở trong trình vỏ Roo, chúng ta sẽ sử dụng lệnh hint của Roo để hướng dẫn
chúng ta qua các bước tiếp theo. Lệnh hint gợi ý tạo ra một dự án Spring dựa trên-Maven mới
bằng cách sử dụng lệnh project (tạo dự án) (xem Liệt kê 2).
Liệt kê 2. Sử dụng lệnh hint trong trình vỏ Roo
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit
ENTER.
roo> hint
Welcome to Roo! We hope you enjoy your stay!
Before you can use many features of Roo, you need to start a new project.
To do this, type ’project’ (without the quotes) and then hit TAB.
Enter a --topLevelPackage like ’com.mycompany.projectname’ (no quotes).
When you're finished completing your --topLevelPackage, press ENTER.
Your new project will then be created in the current working directory.
Note that Roo frequently allows the use of TAB, so press TAB regularly.
Once your project is created, type ’hint’ and ENTER for the next suggestion.
You're also welcome to visit `for Roo help.
roo>
Như lệnh hint đã gợi ý, chúng ta sẽ tạo ra một dự án bằng cách sử dụng lệnh project. Lệnh này
có một thuộc tính bắt buộc, là topLevelPackage, để chỉ rõ tên của gói phần mềm gốc. Ngoài
thuộc tính bắt buộc, chúng ta sẽ sử dụng hai thuộc tính tùy chọn : java (để xác định phiên bản
Java) và projectName (để quy định tên của dự án). Hãy gõ như sau:
project --topLevelPackage com.dw.roo.conference --java 6 --projectName
conference
Lệnh này sẽ tạo ra một dự án dựa trên Spring do Maven V2 quản lý như hiển thị trong kết quả
sau:
Created C:\Users\xebia\demo\conference\pom.xml
Created SRC_MAIN_JAVA
Created SRC_MAIN_RESOURCES
Created SRC_TEST_JAVA
Created SRC_TEST_RESOURCES
Created SRC_MAIN_WEBAPP
Created SRC_MAIN_RESOURCES\META-INF\spring
Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext.xml
Created SRC_MAIN_RESOURCES\log4j.properties
Một lần nữa, gõ lệnh hint để hỏi Roo về hành động tiếp theo. Lúc này, nó gợi ý thiết lập cơ chế
bền vững. Gõ persistence setup (thiết lập bền vững) trên trình vỏ và nhấn phím Tab ba lần.
Bạn sẽ có được các tùy chọn với --provider (trình cung cấp). Ấn phím H, rồi ấn phím Tab để
nhận được "HIBERNATE". Sau provider, ấn phím tab để có các lựa chọn cơ sở dữ liệu và bạn
sẽ thấy một số các tùy chọn. Do chúng ta đang sử dụng Hibernate là nhà cung cấp dịch vụ của
mình, nên chúng ta không thể chọn một cơ sở dữ liệu không quan hệ như Google App Engine
(Công cụ ứng dụng Google). Bây giờ, chúng ta sẽ sử dụng cơ sở dữ liệu
HYPERSONIC_IN_MEMORY.
persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
Có các thuộc tính tùy chọn khác, chẳng hạn như tên người dùng và mật khẩu, mà chúng ta không
cần vào lúc này.
Bây giờ chúng ta đã thiết lập cơ chế bền vững, chúng ta sẽ sử dụng lại lệnh hint. Lúc này, chúng
ta được gợi ý tạo ra các thực thể bằng cách sử dụng lệnh tạo thực thể entity. Lệnh Entity được
sử dụng để tạo các đối tượng miền thực tế và có một thuộc tính bắt buộc, là class, để chỉ rõ tên
của thực thể đó. Ngoài thuộc tính --class bắt buộc, chúng ta sẽ sử dụng thuộc tính --
testAutomatically, để tạo ra các bài kiểm tra tích hợp cho một đối tượng miền. Hãy tạo ra hai
thực thể là Speaker và Talk.
entity --class ~.domain.Speaker -–testAutomatically
entity --class ~.domain.Talk --testAutomatically
Tôi đã sử dụng ~ làm một trình giữ chỗ cho gói mức cao nhất của dự án.
Lệnh Entity sẽ tạo ra một thực thể JPA có rất nhiều tính năng, linh hoạt. Các thực thể được tạo
ra sẽ có JPA @Entity với ID (mã định danh), phiên bản, EntityManager (Trình quản lý thực thể)
và một hàm tạo không có đối số. Thực thể được tạo ra sẽ có các phương thức như persist (bền
vững), merge (kết hợp), remove (loại bỏ), flush (gửi ngay nội dung bộ đệm), count (đếm), find
(tìm) và findById (tìm theo ID), v.v.. Nếu bạn xem xét kết quả đầu ra của lệnh này, bạn sẽ thấy
rằng lệnh này, ngoài việc tạo ra các tệp Java (cho Speaker và Talk), cũng đã tạo ra các tệp
AspectJ mã hóa bằng *Roo_*.aj. *Roo_*.aj này được gọi là ITD (Intertype Declaration – Khai
báo giữa các kiểu), Mixins hoặc Introductions (Các hướng dẫn). Roo sử dụng ITD như một tạo
phẩm tạo-mã. Các ITD cho phép Roo tạo mã trong một đơn vị biên dịch riêng biệt, nhưng các
ITD được kết hợp thành lớp đã biên dịch giống nhau trong lúc biên dịch. Các khai báo giữa các
kiểu của AspectJ được sử dụng để tự động tạo ra ID và các trường phiên bản và các getter và các
setter cho các trường bền vững trong các lớp miền.
Việc sử dụng lại lệnh hint đưa ra gợi ý bổ sung các trường cho thực thể khi sử dụng lệnh field.
Hãy thêm một số trường vào thực thể Speaker:
field string --fieldName firstname --class ~.domain.Speaker --notNull
field string --fieldName lastname --notNull
field string --fieldName email --unique --notNull
field string --fieldName organization
field date --fieldName birthdate --type java.util.Date --past --
notNull
field number --type java.lang.Long --fieldName age --min 25 --max 60
Các tùy chọn --class cho phép chúng ta chỉ rõ chúng ta muốn thêm các trường vào lớp nào.
Có thể sử dụng lệnh field để quy định các chú thích đặc trưng-xác nhận hợp lệ của JavaBean
với các tùy chọn như --max và --min, v.v.. Nó cũng có thể được sử dụng để quy định các chú
thích đặc trưng JPA với các tùy chọn như --fetch, --column và --unique, v.v.. Đối với các
trường ngày tháng, bạn cũng có thể quy định có nên là các ngày trong quá khứ hoặc tương lai
như đã sử dụng ở trên không. Khi sử dụng lệnh field, bạn không phải nhớ các chú thích này.
Bây giờ chúng ta hãy thêm một số trường vào thực thể Talk:
field string --fieldName title --class ~.domain.Talk --notNull
field string --fieldName description --notNull --sizeMax 4000
Cho đến nay, chúng ta đã tạo ra các thực thể và đã bổ sung các trường cho chúng, nhưng chúng
ta vẫn chưa quy định mối quan hệ giữa chúng. Mối quan hệ giữa Speaker và Talk là
ONE_TO_MANY (tức là, một người nói có thể cung cấp bất kỳ số lượng các cuộc thảo luận
nào). Điều này được thực hiện khi sử dụng lệnh field, như sau:
field set --fieldName talks --type ~.domain.Talk --class \
~.domain.Speaker --cardinality ONE_TO_MANY
field reference --fieldName speaker --type ~.domain.Speaker \
--class ~.domain.Talk –-notNull
Bây giờ chúng ta sẽ muốn dựng lên một tầng web cho ứng dụng hội nghị. Điều này được thực
hiện khi sử dụng lệnh controller (Tạo bộ điều khiển). Cách thuận tiện nhất để tạo ra các bộ
điều khiển và tất cả các tạo phẩm web liên quan là sử dụng lệnh controller all.
controller all --package ~.web
Việc sử dụng lệnh controller lần đầu cũng sẽ bổ sung thêm nhiều phụ thuộc nữa, ví dụ như
Spring MVC và Tiles vào dự án của bạn. Điều này có thể mất một chút thời gian để chạy vì nó
phải tải về tất cả các phụ thuộc (nếu chúng vẫn chưa có trong kho lưu trữ Maven của bạn). Lệnh
này cũng cho thấy một trong các tính năng của Roo: nó bổ sung các phụ thuộc chỉ khi cần chúng.
Tiếp theo, chúng ta sẽ thiết lập lệnh logging (ghi nhật ký) sử dụng log4j:
logging setup --level INFO --package ALL_SPRING
Điều cuối cùng mà chúng ta nên làm trước khi thoát khỏi trình vỏ Roo là chạy các bài kiểm tra
tích hợp đã được tạo ra khi chúng ta đã quy định --testAutomatically với lệnh entity. Để
chạy các bài kiểm tra từ bên trong trình vỏ, hãy gõ lệnh perform tests (thực hiện các bài kiểm
tra).
Roo ủy thác cuộc gọi đến Maven để chạy các bài kiểm tra này, do đó, lệnh perform tests
tương đương với một lệnh mvn test (kiểm tra mvn). Gõ q hay quit để thoát khỏi trình vỏ này.
Những lệnh này sẽ tạo ra một ứng dụng hội nghị đầy đủ chức năng. Tiếp theo chúng ta sẽ chạy
ứng dụng này.
Để chạy ứng dụng này, hãy gõ lệnh mvn tomcat:run để khởi động máy chủ jetty. Mở một trình
duyệt web và chuyển đến địa chỉ Bạn sẽ thấy màn hình như
trong Hình 2.
Hình 2. Trang chủ ứng dụng hội nghị
Bạn có thể nhấn chuột vào Create new Speaker (Tạo Người nói mới) để tạo ra một người nói
tại hội nghị. Bạn cũng có thể xem, chỉnh sửa và xóa một người dùng bằng cách nhấn vào List all
Speakers (Danh sách tất cả những người nói). Theo cách tương tự, bạn có thể tạo ra một Cuộc
thảo luận (Talk), nhưng không phải trước khi tạo một Người nói (Speaker).
Đây là một ứng dụng đơn giản, nhưng nó cho thấy bạn có thể tạo ra một ứng dụng web mới dựa
trên Spring dễ đến mức nào ngay từ đầu chỉ trong vài phút. Trong phần thứ hai của loạt bài này,
tôi sẽ cho bạn thấy cách xây dựng một ứng dụng bằng cách sử dụng các tính năng và các phần bổ
sung Roo khác nhau.
Bây giờ chúng ta đã tạo ra một ứng dụng đơn giản, tôi sẽ cho thấy bạn có thể xây dựng mã nguồn
Spring Roo trên Windows và Ubuntu như thế nào.
Về đầu trang
Xây dựng Spring Roo từ mã nguồn
Spring Roo V1.1.0 là phiên bản phát hành sản phẩm mới nhất và sự phát triển năng động đang
diễn ra trong bản phát hành V1.1.1. Có nhiều lý do là tại sao bạn có thể yêu cầu xây dựng Spring
Roo từ mã nguồn:
1. Spring Roo không cung cấp các nightly build (quá trình xây dựng trung lập được thực
hiện tự động), vì vậy nếu bạn cần những tính năng mới nhất của Spring Roo, bạn cần phải
xây dựng mã nguồn của Spring Roo.
2. Bạn muốn làm bất kỳ phần phát triển nào cho dự án Spring Roo.
3. Bạn muốn viết một phần bổ sung cho Spring Roo.
4. Bạn chỉ muốn thử nghiệm với mã Spring Roo để xem cách thực hiện hoặc viết nó.
Kết quả
Đến cuối phần này, bạn sẽ có thể chạy một bản xây dựng Maven thành công của mã nguồn
Spring Roo mới nhất trên cả hệ thống Windows lẫn hệ thống *nix. Bạn sẽ có thể làm việc với
công cụ Spring Roo mới nhất và có thể nhập khẩu các dự án Spring Roo vào Eclipse hoặc STS
(SpringSource Tool Suite).
Quá trình xây dựng mã nguồn Spring Roo trên Ubuntu
Việc xây dựng mã nguồn trên Ubuntu (và hệ thống *nix khác) rất dễ dàng. Chỉ cần làm theo các
bước sau:
1. Cài đặt Git, một hệ thống quản lý kiểm soát mã nguồn phân tán. Để cài đặt nó trên hệ
thống Ubuntu của bạn, hãy gõ sudo apt-get install git-core gitk.
2. Kiểm tra Spring Roo khi dùng Git bằng cách gõ git clone
git://git.springsource.org/roo/roo.git. Bạn sẽ thấy một thư mục roo trong thư
mục chủ của bạn có chứa tất cả các mã nguồn Roo.
3. GnuPG cho phép mã hóa và ký dữ liệu và truyền thông của bạn và mô tả một hệ thống
quản lý khóa linh hoạt và các mô đun truy cập cho tất cả các kiểu thư mục khóa công
khai. Roo sử dụng GPG để ký tự động kết quả đầu ra xây dựng.
4. Bắt đầu lệnh gpg --list-secret-keys. Kết quả đầu ra sẽ xuất hiện tương tự như Liệt
kê 3.
Liệt kê 3. Kết quả của lệnh gpg list
C:\dev\roo-sourcecode\roo>gpg --1ist-secret-keys
C:/Users/xebia/AppData/Roaming/gnupg\secring.gpg
sec 2048R/2F96093B 2010-07-03
uid shekhar (spring-roo)
ssb 2048R/B77E5C63 2010-07-03
C:\dev\roo-sourcecode\roo>_
5. Nếu bạn không thấy kết quả đầu ra, trước hết phải tạo một khóa. Sử dụng lệnh gpg –
gen-key, nó sẽ hướng dẫn bạn qua một loạt các bước để tạo một khóa. Sau đó kiểm tra
xem khóa mới được tạo ra của bạn đã được tạo ra chưa bằng cách sử dụng lệnh gpg –
list-secret-keys.
6. Tiếp theo, bạn cần phải xuất bản khóa của bạn đến một máy chủ khóa công khai. Hãy lưu
ý về ID của khóa sec được hiển thị từ –list-secret-keys. Trong trường hợp của tôi,
đó là ID của khóa 2F96093B. Cung cấp khóa công khai của bạn cho một máy chủ khóa
thông qua gpg –keyserver hkp://pgp.mit.edu –send-keys 2F96093B (thay đổi ID
khóa ở cuối).
7. Một số mô-đun Roo yêu cầu các tệp lưu trữ Java (JAR) vẫn chưa có trong biểu mẫu
OSGi. Đó là, chúng không có một bản kê nhận biết-OSGi. Roo có một dự án đặc biệt tên
là wrapping có thể chuyển đổi các JAR bình thường thành các JAR OSGi. Bạn sẽ cần
chạy trình bao bọc (wrapper) trước khi cố gắng làm việc với Roo. Nếu không có trình bao
bọc này, bạn sẽ thấy các lỗi nói rằng Maven không thể tìm thấy
org.springframework.roo.wrapping.some_module. Để tạo ra các JAR được bao bọc,
từ vị trí kiểm tra Roo gốc, gõ:
cd wrapping
mvn clean install
cd..
8. Tiếp theo, chạy lệnh mvn clean install. (Maven V2 nên được cài đặt trên hệ thống
của bạn. Nếu chưa có, hãy cài đặt nó ngay bây giờ). Maven sẽ nhắc bạn nhập mật
khẩu/cụm từ mật khẩu khóa của bạn (bạn đã nhập cụm từ mật khẩu trong khi tạo khóa
GPG) mỗi khi bạn xây dựng mã nguồn. Gõ cụm từ mật khẩu và nhấn Enter. Sẽ mất một
vài phút để xây dựng mã nguồn.
Quá trình xây dựng mã nguồn Spring Roo trên Windows
Việc xây dựng mã nguồn trên Windows có một chút khó khăn hơn so với Ubuntu. Hãy làm theo
các bước sau:
1. Cài đặt Git, một hệ thống quản lý kiểm soát mã nguồn phân tán. Để bắt đầu quá trình, bạn
cần phải cài đặt Git trên máy tính Windows của bạn. Tôi đã cài đặt msysGit trên máy tính
Windows của mình. Nếu bạn đã cài đặt Git, bạn có thể bỏ qua bước này. Khi bạn cài đặt
msysGit, nó sẽ yêu cầu một vị trí cài đặt. Nó sẽ mở một dấu nhắc lệnh và bắt đầu thực
hiện rất nhiều lệnh. việc này sẽ diễn ra trong một phút hoặc lâu hơn. Sau khi cài đặt, bạn
sẽ thấy một màn hình như trong Liệt kê 4.
Liệt kê 4. Cài đặt msysGit
{ test "$bindir/" = "$execdir/" || \
{ rm -f "$execdir/git.exe" && \
test -z "" && \
ln "$bindir/git.exe" "$execdir/git.exe" 2>/dev/null || \
cp "$bindir/git.exe" "$execdir/git.exe"; } ; } && \
{ for p in git-add.exe git-annotate.exe git-apply.exe git-archive.exe
git-bisect--helper.exe git-blame.exe git-branch.exe git-bundle.exe git-cat-
file.exe
git-check-attr.exe git-check-ref
rm -f "$execdirf$p" && \
ln "Sexecdir/git.exe" "Sexecdir/$p" 2>/dev/null ll \
ln -s "git.exe" "$execdir/$p" 2>/dev/null || \
cp "Sexecdir/git.exe" "$execdir/$p" Il exit; \
done; } && \
{ test x"git-renote-https.exe git-renote-ftp.exe \
git-renote-ftps.exe" = x ll \
{ for p in git-remote-https.exe git-remote-ftp.exe \
git-remote-ftps.exe; do \
rm -f "$execdir{$p" && \
ln "Sexecdir/git-remote-http.exe" "$execdir/$p" 2>/dev/null
ll \
ln -s “git-renote—http.exe" "$execdir/$p" 2>/dev/null || \
cp "Sexecdir/git-remote-http