2012-10-04 26 views
7

Tôi đang tạo một sản phẩm dựa trên Eclipse 3.6.2 cho dự án của chúng tôi. Ý tưởng là tạo ra một cài đặt Eclipse có tất cả các plugin chúng tôi yêu cầu và tất cả các cấu hình được thiết lập khi chúng ta cần chúng cho dự án.Xác định các trang web cập nhật trong tệp config.ini

Là một phần trong đó, tôi muốn đảm bảo rằng các trang web cập nhật của chúng tôi được bao gồm, nhưng làm cách nào tôi có thể làm điều đó?

Nếu tôi chọn xuất các trang web cập nhật tùy chọn không được bao gồm. Tôi có thể xuất các trang web cập nhật từ trang tùy chọn và nhận tệp XML với chúng, nhưng làm cách nào tôi có thể đưa nó vào tệp config.ini của mình? Hay có cách nào khác?

Mục tiêu là, khi người dùng chạy sản phẩm Eclipse tùy chỉnh, các trang web cập nhật của chúng tôi sẽ nằm trong danh sách trang web. Lý tưởng nhất, những người duy nhất trong danh sách.

Trả lời

7

Bạn có thể thêm một file p2.inf rằng chỉ thị các trang web cập nhật đặc biệt khi mọi thứ được cài đặt:

instructions.configure=\ 
addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\ addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite); 

này sẽ thêm www.eclipse.org/equinox/p2/testing/updateSite.

Tệp này (p2.inf) cần phải đi trong cùng thư mục với tệp MANIFEST.MF của bạn. Bạn có thể đọc thêm về điều này here.

+0

Cảm ơn, nhưng nó không hoạt động. Khi nào thì p2.inf sẽ chạy? Tôi đã thêm nó vào tính năng của tôi mà sản phẩm bao gồm. Sau đó tôi sử dụng trình hướng dẫn sản phẩm xuất khẩu của Eclipse để tạo ra một sản phẩm và một repo. Việc chạy sản phẩm hoặc cài đặt từ repo không cho tôi một Eclipse với các trang cập nhật được thêm vào. Giai đoạn trong tệp p2 có liên quan gì đến điều này không? Tôi đang sử dụng 'cấu hình' vào lúc này. – Fredrik

+1

Hướng dẫn cho nó sẽ được tạo trong khi xây dựng và được lưu trữ trong tệp content.xml. Khi bạn cài đặt từ repo, nó sẽ được thêm vào. Ví dụ này thêm các giá trị mặc định vào eclipse SDK: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/sdk/sdk.p2. inf?h = R4_2_maintenance –

+0

Lạ lùng, nó hoạt động ngay cả khi tôi không nghĩ mình đã làm gì khác. Đoán tôi sẽ đổ lỗi cho trên máy tính gremling. Cảm ơn @PaulWebster và Ian – Fredrik

1

Kể từ khi có một cơ hội rất có thể tôi sẽ phải làm điều này một lần nữa, và không có cơ hội tôi nhớ làm thế nào để làm điều đó trong thời gian tới, tôi sẽ viết ra các bước tôi đã đi qua:

Tôi tạo ra một p2.inf tập tin với các hướng dẫn;

instructions.configure=\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);` 

Theo the Eclipse wiki các inf-file có thể được đặt trong cùng một thư mục như feature.xml tôi, vì vậy đó là những gì tôi đã làm.

Tôi đã có một sản phẩm bao gồm tính năng này, vì vậy tôi đã xuất sản phẩm bằng trình hướng dẫn xuất sản phẩm Eclipse. Tôi đã chắc chắn xây dựng một kho lưu trữ.

Sau khi xây dựng xong, kho lưu trữ có content.jar. Bên trong content.jar có một tệp content.xml. Kiểm tra nó, tôi có thể tìm thấy:

<touchpointData size='1'> 
    <instructions size='1'> 
    <instruction key='configure'> 
     org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(<all my update sites>); 
    </instruction> 
    </instructions> 
</touchpointData> 

Vì vậy, điều này đã xác minh rằng xuất khẩu thực sự thấy tệp p2.inf của tôi và làm điều gì đó với nó.

Để cài đặt từ kho tôi đã sử dụng một kịch bản Giám đốc Eclipse:

cmd /c "C:\Program\Eclipse\director\director -consoleLog -bundlepool c:/program/eclipse/eclipse3.6_custom -profileProperties "org.eclipse.update.install.features=true" -i MyProduct.Product -r "file:/C:\eclipse\exported\repository" -d c:/program/eclipse/eclipse3.6_custom -p helios"` 

Các kịch bản cài đặt sản phẩm từ kho đến đích.

+2

Cảm ơn quá khứ Fredrik, đó là thông tin tuyệt vời để viết xuống, cao năm! :) – Fredrik

+1

Đó là loại không công bằng mặc dù, rằng tương lai-Fredrik không thể upvote quá khứ-Fredrik (vì anh ấy bị mất và đi trong dòng chảy của thời gian). – Lii