Nếu trước đây bạn đã tạo một dự án trình cắm thêm trong Eclipse, bạn đã quen thuộc với các bản mẫu dự án trình cắm thêm đã thiết lập, chúng cung cấp một điểm khởi đầu thuận lợi cho các dự án mới. Các bản mẫu trình cắm thêm hiện có có thể tiết kiệm rất nhiều thời gian, nhưng chúng không phải là có quyền năng vô hạn.
Một thách thức khi sử dụng chúng là tìm kiếm các bản mẫu thỏa mãn các yêu cầu của những người sử dụng. Tuy nhiên, các bản mẫu chỉ cung cấp một số các chức năng nhất định nào đó, trong khi các yêu cầu của những người sử dụng rất đa dạng và hầu như những người đã tạo ra các bản mẫu không thể hoàn toàn đoán trước được các yêu cầu đó. Tùy chỉnh các bản mẫu là một cách thông minh để mang lại cho những người sử dụng các trình cắm thêm mà họ cần, đồng thời không phải viết chúng từ đầu.
Trong bài viết này, hãy tìm hiểu về:
- Làm thế nào để tùy chỉnh bản mẫu dự án trình cắm thêm trong Eclipse.
- Các đặc tính cao cấp của các bản mẫu, như là việc triển khai thực hiện và kiểm soát nhiều phân đoạn, tuỳ chỉnh thành phần UI và xác nhận hợp lệ.
- Các công cụ để tổ chức cấu trúc thư mục dự án một cách tự động.
Bài viết này được viết cho các nhà phát triển công nghệ Java™ quen thuộc với Eclipse và có quan tâm đến việc xây dựng các trình cắm thêm. Nó giả thiết bạn đã có một sự hiểu biết cơ bản về các trình cắm thêm và các công cụ phát triển dựa trên Eclipse nói chung. Để xây dựng ví dụ về các trình cắm thêm, bạn cần một máy tính có cài đặt một bản Eclipse (V3.4 hoặc mới hơn) và một môi trường thực thi Java (Java Runtime Environment-JRE) hiện tại.
Công việc ở đây là dựa vào bài báo của developerWorks "Xây dựng các bản mẫu với Môi trường phát triển các trình cắm thêm của Eclipse." Nếu bạn là người mới bắt đầu với các bản mẫu trình cắm thêm, chúng tôi đề nghị bạn bắt đầu với bài viết đó, trong đó nó giới thiệu làm thế nào để tạo một bản mẫu. Bởi vì đó là bài viết giới thiệu nhập môn nên bản mẫu mà nó trình bày thiếu các đặc tính mà chúng tôi sẽ cung cấp tại đây, trong đó bao gồm các đặc tính sau.
- Việc triển khai thực hiện và kiểm soát nhiều phân đoạn
- Thông thường, một phân đoạn (section) của một bản mẫu trình cắm thêm được định nghĩa như là một mô đun chức năng gắn kết chặt chẽ, chứa các tệp tin phụ thuộc lẫn nhau rất mạnh, được thiết lập hoặc được tạo ra dựa trên cơ sở dữ liệu nhập vào của người sử dụng. Các tệp tin trong cùng một phân đoạn sẽ hoặc được sao chép tất cả cùng với nhau vào trong dự án đích hoặc không sao chép tệp nào cả. Một người sử dụng có thể định nghĩa một phân đoạn là bắt buộc hay tùy chọn. Các tệp tin trong phân đoạn bắt buộc phải được bao gồm vào trong dự án trình cắm thêm, trong khi các tệp trong phân đoạn tùy chọn sẽ được sao chép theo sự lựa chọn. Điều này rất có ích khi một bản mẫu trình cắm thêm cung cấp một tập hợp chức năng rộng hơn, nhưng một dự án chỉ cần một tập con trong đó.
- Tuỳ chỉnh thành phần UI
- Eclipse cung cấp một số thành phần UI mặc định cho một bản mẫu dự án trình cắm thêm. Những thành phần UI cơ bản này cung cấp các chức năng có hạn chế. Để cải thiện khả năng sử dụng và chức năng, chúng ta đôi khi cần phải tùy chỉnh các thành phần phức tạp.
- Chức năng xác nhận hợp lệ đầu vào
- Nó làm tăng khả năng kiểm soát xác nhận tính hợp lệ của dữ liệu.
- Tổ chức cấu trúc thư mục của dự án trình cắm thêm một cách tự động
- Các tài nguyên trong dự án của trình cắm thêm có thể được tổ chức thành một thư mục đặc thù, sử dụng một bản mẫu. Việc này tiết kiệm rất nhiều công sức.
Các đặc tính mở rộng ấy làm cho một bản mẫu trình cắm thêm có tính co giãn hơn, hữu dụng hơn và hiệu quả hơn. Trong những phần sau, chúng tôi trình bày một bản mẫu tiêu biểu, sử dụng tất cả các đặc tính này.
Nghiên cứu trường hợp tiêu biểu: Thảo luận sâu về một bản mẫu trình cắm thêm
Giả sử rằng cần có một nhóm các dự án trình cắm thêm. Chúng được sử dụng để xây dựng các phối cảnh Eclipse khác nhau, ví dụ như phối cảnh Java và phối cảnh Web. Một dự án dành để phát triển một phối cảnh. Mỗi phối cảnh có thể có một vài khung nhìn. Mỗi khung nhìn có các tài nguyên liên quan, ví dụ như hình ảnh và các tệp tin nguồn Java được tạo ra tự động, cần phải được sao chép vào dự án của nó. Số lượng các khung nhìn trong một phối cảnh và tên của mỗi khung nhìn được xác định bởi mỗi phối cảnh cá thể.
Tùy chỉnh một bản mẫu của trình cắm thêm là một cách thích hợp để tạo ra các dự án đích này.
Để bắt đầu, hãy tạo ra một dự án
trình cắm thêm mới (File > New > Project > Plug-in
Project). Hãy chắc chắn đánh dấu chọn hộp kiểm tra Trình cắm thêm này
sẽ có đóng góp thêm vào các UI (This plug-in will make contribution to
the UI). Đó là vì các dự án đích trong mẫu này dành để phát triển
phối cảnh, trong đó sẽ sử dụng UI. Một khi dự án mới được tạo ra, một mở
rộng của trình thủ thuật bản mẫu, là mở rộng của lớp org.eclipse.pde.ui.plugin.Content cũng sẽ được thêm vào trong
plugin.xml.
Đặc tính mới A: Việc triển khai thực hiện và kiểm soát nhiều phân đoạn
Khi chúng ta xem xét kỹ hơn trường hợp nêu trên, chúng ta phát hiện một vấn đề về tùy chỉnh bản mẫu. Bởi vì số các khung nhìn cho mỗi phối cảnh có thể thay đổi, các tài nguyên có liên quan không thể được tạo ra và sao chép vào dự án đích của nó trước khi cho biết con số này.
Để giải quyết vấn đề này, chúng ta xem xét hai giải pháp. Một phương pháp phổ biến là tạo ra một mẫu cho mỗi loại phối cảnh, ở đây tất cả các phối cảnh đều có số lượng khung nhìn bằng nhau được lắp ghép lại. Một phương pháp khác hiệu quả hơn và cao cấp hơn. Một bản mẫu duy nhất được tạo ra cho tất cả các loại phối cảnh. Sự liên kết giữa các khung nhìn và phối cảnh được quản lý bằng việc kiểm soát các phân đoạn.
Thêm các phần mở rộng cho phân đoạn khung nhìn và phân đoạn phối cảnh
Trong ví dụ này, chúng ta chia tất cả các tài nguyên thành hai phân đoạn. Chúng ta sử dụng phân đoạn phối cảnh để quản lý các tài nguyên phối cảnh và sử dụng phân đoạn khung nhìn để quản lý các tài nguyên khung nhìn. Nếu một người dùng muốn một phối cảnh không có các khung nhìn nào, sẽ không có bất kỳ các tài nguyên khung nhìn nào được sao chép vào trong dự án tương ứng. Tương tự, nếu một người sử dụng muốn một phối cảnh có chín khung nhìn, chín khung nhìn sẽ được đăng ký vào trong các phối cảnh của chúng và các tài nguyên khung nhìn sẽ được tạo ra và được sao chép lặp lại vào trong dự án đích của nó.
Để tạo ra hai phân đoạn này, chúng ta cần phải bổ sung thêm các phần mở rộng trong phiếu Extensions của trình soạn thảo kê khai trình cắm thêm.
Hình 1. Phiếu Các phần mở rộng — phân đoạn Phối cảnh
Hình 2. Phiếu Các phần mở rộng — phân đoạn Khung nhìn
Triển khai thực hiện các phân đoạn
Hình 3 cho thấy cấu trúc của dự án bản mẫu. Năm tệp tin mới (SampleWizard.java, PerspectiveSection.java, ViewSection.java, $perspectiveClassName$.java và $viewClassName$.java) được tạo ra trong mẫu này. Chúng là phần chính của một dự án.
Hình 3. Cấu trúc của dự án bản mẫu
PerspectiveSection và ViewSection là các lớp con của OptionTemplateSection, được sử dụng để biểu diễn một phân đoạn
của một trình thủ thuật của bản mẫu. Chúng có ba chức năng chính: để tạo
một UI cho bản mẫu, để giữ các biến được nhập vào từ UI và để cập nhật mô
hình trình cắm thêm. Bảng 1 cho thấy mô tả các phương thức của các lớp
phân đoạn.
Bảng 1. Mô tả các phương thức của các lớp phân đoạn
| Tên phương thức | Mô tả chức năng |
|---|---|
| initializeFields | Khởi tạo các tùy chọn trên các trang của trình thủ thuật bằng cách sử dụng các thông số đầu vào. Một số tùy chọn có thể tùy thuộc vào sự lựa chọn của người sử dụng trong các bước trước đó của trình thủ thuật. |
| addPages | Thêm các trang liên quan đến bản mẫu vào trình thủ thuật. |
| getStringOption | Nhận tên tùy chọn. |
| getSectionId | Trả về mã nhận dạng ID của phân đoạn. |
| updateModel | Thêm các mục cần thiết vào trong mô hình trình cắm thêm. |
$perspectiveClassName$.java và
$viewClassName$.java là các tệp tin bản mẫu
sẽ được tự động dịch sang các tệp tin mã nguồn Java của dự án đích. Các
tệp tin bản mẫu rất đơn giản trong mẫu này. Chúng ta chỉ tạo một danh sách
cho mỗi khung nhìn, sau đó thêm những khung nhìn này vào trong phối
cảnh.
Tiếp theo là đưa việc kiểm soát phân đoạn vào trong hành vi
của trình thủ thuật. Lớp SampleWizard là một
lớp con của NewPluginTemplateWizard, được sử
dụng như là một bản mẫu trình thủ thuật cho trình cắm thêm. Chúng ta có
thể cấp phát một phân đoạn cụ thể cho dự án trình cắm thêm đích thông qua
lớp SampleWizard. Phương thức performFinish thừa kế từ lớp bậc trên
(super-class). Nó có thể được sử dụng để thực hiện một quá trình kết thúc
đặc biệt trong một trình thủ thuật, kể cả duyệt qua một vòng các phân đoạn
của bản mẫu và tuần tự thực hiện chúng để tạo ra các tệp tin cho dự án
đích. Liệt kê 1 hiển thị những phân đoạn đã được đăng ký trong một trình
thủ thuật và các hành động chính trong phương thức performFinish.
Liệt kê 1. SampleWizard.java
//register all related sections in wizard
public ITemplateSection[] createTemplateSections() {
return new ITemplateSection[] {
new PerspectiveSection(),
new ViewSection()
};
}
public boolean performFinish(final IProject project, IPluginModelBase model,
IProgressMonitor monitor) {
...
ITemplateSection[] sections = super.getTemplateSections();
//monitor finish action in this wizard
monitor.beginTask("perform finish", sections.length);
...
//get sections
for (int i = 0; i <sections.length; i++) {
if (sections[i].getClass().equals(PerspectiveSection.class)) {
perspectiveSection = (PerspectiveSection) sections[i];
} else if (sections[i].getClass().equals(ViewSection.class)) {
viewSection = (ViewSection) sections[i];
}
}
...
//set variables to sections and manage sections
...
viewSection.setViewClassName(values[j]);
viewSection.setSourcePath(sourceFolderName);
viewSection.execute(project, model, new SubProgressMonitor(monitor, 1));
perspectiveSection.setSourcePath(sourceFolderName);
perspectiveSection.setViewNames(viewNames);
perspectiveSection.execute(project, model, new SubProgressMonitor(monitor, 1));
}
|
Đặc tính mới B: Tùy chỉnh thành phần UI
Như đã đề cập, một phối cảnh có thể có
nhiều khung nhìn như người sử dụng mong muốn và tên của mỗi khung nhìn có
thể được người sử dụng thiết lập. Để thu thập tất cả các khung nhìn trong
một phối cảnh, chúng ta thiết kế một bảng điều khiển đầu vào, như chỉ ra
dưới đây. Nó có một trường Tên lớp của khung nhìn (View Class Name) và một trường Danh sách khung nhìn (View List). Người sử dụng có thể nhập vào tên lớp
của khung nhìn và thêm nó vào danh sách khung nhìn bằng cách nhấn chuột
vào nút Add. Tương tự, người sử dụng cũng có thể loại bỏ một khung
nhìn bằng cách sử dụng nút Remove.
Hình 4. Các tùy chọn bản mẫu đã tùy chỉnh
Để tạo các tùy chọn bản mẫu này, ta thêm lớp ViewOption, là mở rộng của lớp TemplateOption, vào trong dự án bản mẫu (xem Hình 3). Chúng ta
sử dụng nó để thiết lập các thành phần UI và lưu trữ các giá trị nhập vào
của người sử dụng. Liệt kê 2 hiển thị làm thế nào để tùy chỉnh một thành
phần UI với một danh sách khung nhìn, cộng thêm hai nút nhấn.
Liệt kê 2. ViewOption.java
//add UI components in this panel
public void createControl(Composite parent, int span) {
...
//create View List
listLabel = new Label(parent, SWT.LEFT);
listLabel.setText("View List:");
listViewerField = new ListViewer(parent);
listField = (List) listViewerField.getControl();
GridData listGridData = new GridData(GridData.FILL_HORIZONTAL);
listGridData.heightHint = 100;
listField.setLayoutData(listGridData);
...
//create add button
addButton = new Button(parent, SWT.PUSH);
addButton.setText("Add");
...
addButton.setLayoutData(addBtnData);
addButton.addSelectionListener(...);
//create remove button
removeButton = new Button(parent, SWT.PUSH);
...
removeButton.addSelectionListener(...);
}
|
Đặc tính mới C: Chức năng xác nhận tính hợp lệ đầu vào
Chức năng xác nhận tính hợp lệ đầu vào đề cập đến một quy trình xác nhận hợp lệ của tất cả các giá trị nhập vào của người sử dụng trước khi sử dụng chúng. Chức năng xác nhận tính hợp lệ đầu vào mang tính quyết định với việc bảo mật ứng dụng. Trong mẫu của chúng ta, chúng ta định nghĩa một quy tắc xác nhận hợp lệ: Đối với tất cả các khung nhìn trong một phối cảnh, tên lớp của khung nhìn phải là duy nhất. Nếu quy tắc này bị vi phạm, một thông báo lỗi sẽ được hiển thị trên đỉnh của bảng điều khiển.
Hình 5. Xác nhận hợp lệ của các tùy chọn bản mẫu đã tùy chỉnh
Chức năng xác nhận tính hợp lệ đầu vào có thể được triển khai thực
hiện bằng cách gọi phương thức validateOptions
trong lớp phân đoạn tương ứng. Phương thức này kế thừa từ lớp bậc trên và
chúng ta có thể viết đè lên nó để thực hiện chức năng xác nhận hợp lệ
riêng của chúng ta. Liệt kê 3 hiển thị phương thức validateOptions trong mẫu của chúng
ta.
Liệt kê 3. Phương thức
validateOptions trong ViewSection.java
public void validateOptions(TemplateOption source) {
this.getPage(0).setErrorMessage(null);
ViewOption viewOption = (ViewOption) source;
Text textField = viewOption.getTextField();
List listField = viewOption.getListField();
String[] items = listField.getItems();
if (items != null && items.length > 0) {
//validation rule check
for (int i = 0; i < items.length; i++) {
if (items[i].equals(textField.getText())) {
this.getPage(0).setErrorMessage("Class name '"
+ textField.getText()
+ "' already exists in View List.");
break;
}
}
}
}
|
Đặc tính mới D: Tự động tổ chức các cấu trúc thư mục của một dự án trình cắm thêm
Một trong các mục tiêu của chúng ta là để cho các bản mẫu tự động tổ chức cấu trúc thư mục cho các dự án trình cắm thêm đích. Chúng ta thực hiện việc này theo ba bước sau:
- Lưu trữ các cấu trúc thư mục của dự án đích bằng cách sử dụng các biến.
- Viết một kịch bản lệnh Ant, mà nó sẽ được sử dụng để tạo ra cấu trúc thư mục đích và gán các tài nguyên vào trong các thư mục thích hợp.
- Thêm
IResourceChangeListenerđể giám sát vùng làm việc của bản mẫu. Kích hoạt thực hiện kịch bản lệnh Ant sau khi việc tạo tệp tin của phân đoạn đã hoàn thành.
- Để đơn giản hóa, chúng ta giả sử tất cả các tệp tin Java được sao chép
vào trong một gói sử dụng cùng một tên như tên của dự án. Ví dụ, nếu
một dự án có tên là
com.ibm.template, tất cả các tệp tin Java sẽ nằm trong góicom.ibm.template. Bàn về việc này vượt ra ngoài phạm vi của bài viết. Xem "Xây dựng các bản mẫu với Môi trường phát triển trình cắm thêm của Eclipse" để biết chi tiết. - Liệt kê 4 cho thấy kịch bản lệnh Ant mà chúng ta sử dụng trong mẫu
này. Nó có ba đích (
target).Đíchthứ nhất tạo ra một cấu trúc thư mục dựa trên đường dẫn nguồn và đường dẫn gói. Đích thứ hai sao chép tất cả các tệp tin Java vào đúng thư mục. Đích cuối cùng loại bỏ tệp tin kịch bản lệnh này khỏi dự án trình cắm thêm mới. - Thêm
IResourceChangeListenervào trong phương thứcperformFinishcủa lớpSampleWizard. Liệt kê 5 cho thấy triển khai thực hiện của trình lắng nghe này.
Liệt kê 4. CreatePackage.xml
<?xml version="1.0"?>
<project name="template project" default="clean" basedir=".">
<property name="package" value=".\$sourcePath$\$packagePath$"></property>
<target name="create">
<mkdir dir="$dollarMark${package}"/>
</target>
<target name="move" depends="create">
<move todir="$dollarMark${package}">
<fileset dir=".">
<include name="*.java"/>
</fileset>
</move>
</target>
<target name="clean" depends="move">
<delete dir=".">
<include name="CreatePackage.xml"/>
</delete>
</target>
</project>
|
Liệt kê 5. SampleWizard.java — Listener
public boolean performFinish(final IProject project, IPluginModelBase model,
IProgressMonitor monitor) {
...
//get workspace
final IWorkspace workspace = ResourcesPlugin.getWorkspace();
//get Ant file
String antFilePath = "CreatePackage.xml";
final IFile file = project.getFile(antFilePath);
//add Listener to monitor resource changing
IResourceChangeListener listener = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) {
try {
if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
IResourceDelta rootDelta = event.getDelta();
IPath filePath = file.getFullPath();
IResourceDelta targetDelta = rootDelta.findMember(filePath);
if (targetDelta != null) {
URI uri = file.getLocationURI();
File antFile = new File(uri);
//run Ant script
Project project = new Project();
project.fireBuildStarted();
project.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
helper.parse(project, antFile);
project.executeTarget(project.getDefaultTarget());
project.fireBuildFinished(null);
workspace.removeResourceChangeListener(this);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
workspace.addResourceChangeListener(listener);
...
}
|
Sau khi chúng ta tạo một dự án của trình cắm thêm mới, chúng ta cần phải làm mới dự án. Nhấn chuột phải vào dự án và chọn mục Refresh trong trình đơn. Đó là do kịch bản lệnh Ant của chúng ta được thực hiện sau khi tạo ra dự án. Chúng ta cần phải làm mới dự án trong IDE Eclipse bằng tay. Liệt kê 6 là dự án trình cắm thêm được tạo ra thông qua bản mẫu tiêu biểu được thảo luận trong "Nghiên cứu trường hợp tiêu biểu: Thảo luận sâu về một bản mẫu trình cắm thêm."
Hình 6. Cấu trúc của dự án mới
Bạn cần phải xuất khẩu mới dự án mới này tới thư mục
[eclipse_home]\plugins, sau đó khởi động lại Eclipse với các tham số dòng
lệnh -clean. Sau khi Eclipse khởi động, hãy
kiểm tra xem phối cảnh của chúng ta đã được thêm vào trong danh sách phối
cảnh chưa (xem trong Hình 7). Chọn myplugin
perspective, sau đó nhấn OK. Phối cảnh này sẽ mở ra.
Hình 7. Danh sách phối cảnh
Thông qua bài viết này, bạn sẽ có hiểu biết sâu hơn về bản mẫu trình cắm thêm của Eclipse. Bạn đã học cách làm thế nào để tạo một thành phần nhập vào đã tùy chỉnh, làm thế nào để kiểm soát việc tạo ra các tệp tin bản mẫu và làm thế nào để sử dụng một bản mẫu để tạo ra các dự án trình cắm thêm có cấu trúc thư mục khác nhau. Bằng cách tận dụng các đặc tính bản mẫu này, bạn sẽ nhận thấy thật dễ dàng tạo ra dự án trình cắm thêm.
| Mô tả | Tên | Kích thước | Phương thức tải |
|---|---|---|---|
| Sample plug-in template | os-eclipse-plugin-templates.zip | 33KB | HTTP |
Học tập
- Tìm hiểu nhiểu hơn về cơ sở tạo bản mẫu
trong "Building templates with the
Eclipse Plug-in Development Environment."
- Tìm hiểu nhiểu hơn về Plug-in Development Environment
(PDE).
- Tìm hiểu nhiểu hơn về việc sử dụng bản
mẫu trong "Building Eclipse plug-ins using
templates."
- Xem "Danh sách khuyến cáo đọc về
Eclipse."
- Duyệt qua tất cả nội dung Eclipse trên developerWorks.
- Bạn mới đến với Eclipse ? Đọc bài viết
trong developerWorks "Get started with Eclipse
Platform" để tìm hiểu nguồn gốc và kiến trúc của nó và làm thế nào
để mở rộng Eclipse bằng các trình cắm thêm.
- Mở rộng các kỹ năng Eclipse của bạn bằng
cách xem các tài nguyên dự án Eclipse
của developerWorks IBM.
- Để nghe các cuộc phỏng vấn và các cuộc
thảo luận thú vị cho các nhà phát triển phần mềm, hãy xem developerWorks
podcasts.
- Theo sát các sự kiện kỹ thuật và
webcasts của developerWorks.
- Theo dõi và tìm hiểu về các công nghệ và
các chức năng sản phẩm IBM và mã nguồn mở với các trình diễn mẫu theo yêu cầu
miễn phí của developerWorks.
- Hãy ghi tên dự các hội nghị sắp tới, các
cuộc triển lãm thương mại, webcasts và các sự kiện khác trên khắp thế
giới đang được các nhà phát triển mã nguồn mở của IBM quan tâm.
- Hãy truy cập vào Vùng mã nguồn mở của
developerWorks để có được rất nhiều các thông tin hướng dẫn, các công cụ
và các cập nhật dự án, giúp bạn phát triển với các công nghệ mã nguồn mở
và sử dụng chúng với các sản phẩm của IBM.
Lấy sản phẩm và công nghệ
- Xem các bản tải về công nghệ
Eclipse mới nhất tại alphaWorks của IBM.
- Tải về Eclipse Platform và các dự án
khác từ Eclipse Foundation.
- Tải về các phiên bản đánh giá sản phẩm
của IBM và nhận các công cụ thực hành phát triển ứng dụng của bạn
và các sản phẩm phần mềm trung gian từ DB2®, Lotus®,
Rational®, Tivoli® và
WebSphere®.
- Đổi mới dự án
phát triển phần mềm mã nguồn mở tiếp theo của bạn bằng phần mềm thử nghiệm của IBM,
có sẵn để tải về hoặc trên đĩa DVD.
Thảo luận
-
Các nhóm tin chung về
nền tảng Eclipse sẽ là điểm dừng đầu tiên của bạn để thảo luận các
vấn đề về Eclipse. (Việc lựa chọn này sẽ khởi chạy ứng dụng đọc tin tức
Usenet mặc định của bạn và mở eclipse.platform).
-
Các nhóm tin chung về
Eclipse có nhiều tài nguyên cho những người quan tâm đến việc sử dụng và
mở rộng Eclipse.
- Tham gia vào các developerWorks blogs và tích
cực hoạt động trong cộng đồng.

