2011-10-26 36 views
14

Làm thế nào để tăng kích thước heap của plugin m2e Eclipse? Về cơ bản, tôi đang cố gắng chạy thử nghiệm tích hợp tự động bằng cách sử dụng Cargo và Selenium theo STS (phiên bản Eclipse của SpringSource) với m2e được cài đặt sẵn (plugin Maven phổ biến cho Eclipse).Tăng kích thước heap trong m2e Plugin Eclipse

Bất cứ khi nào tôi chạy

mvn verify 

tôi nhận khét tiếng java.lang.OutOfMemoryError: Java không gian đống ... 63m/63m. Vì vậy, tôi đã thực hiện một số nghiên cứu đầu tiên. Tăng bộ nhớ thông qua MAVEN_OPTS, Eclipse.ini/STS.ini, Chạy cấu hình, và thậm chí thông qua các trình cắm thêm Maven thông qua tệp pom.xml. Không có gì thay đổi. Lỗi tương tự và cùng dung lượng bộ nhớ 63M/63M.

Tôi biết dự án của tôi hoạt động. POM là chính xác. Tại sao? Bởi vì khi tôi chạy lệnh tương tự bằng cách sử dụng một Maven độc lập. Bài kiểm tra tích hợp với các tác phẩm của Selenium và Cargo. Trên thực tế, đây là sản lượng mới nhất (3 phút trước):

[INFO] [beddedLocalContainer] Jetty 8.x Embedded is stopped 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 4 minutes 24 seconds 
[INFO] Finished at: Wed Oct 26 14:08:16 CST 2011 
[INFO] Final Memory: 70M/149M 
[INFO] ------------------------------------------------------------------------ 

Tôi không hỏi cách tăng bộ nhớ trong lệnh Maven độc lập. Tôi đặc biệt hỏi làm thế nào để tăng kích thước heap cho m2e.

Lưu ý: Theo mặc định, plugin Eclipse m2e không có lối tắt đến mục tiêu "xác minh". Bạn phải tạo một cái mới thông qua Run Configuration (không có thẻ Args, fyi).

Trả lời

0

Bạn đã thử đặt biến môi trường MAVEN_OPTS cho cấu hình chạy của mình chưa?

MAVEN_OPTS="-Xmx768M -XX:MaxPermSize=128m" 

Có thể bạn sẽ phải chỉnh sửa biến môi trường hệ thống nếu cài đặt trong cấu hình chạy không có tác dụng. Xem here hoặc here

+0

Vâng, tôi đã làm. Nhưng điều đó không ảnh hưởng đến plugin m2e. Nó đã ảnh hưởng đến plugin Maven độc lập. – krams

+0

Điều này không hiệu quả đối với tôi ... –

0

Tôi đã gặp phải sự cố tương tự. Tạo một tệp có tên mavenrc_pre.bat trên các cửa sổ hoặc .mavenrc trên linux trong thư mục chính của bạn và đặt maven_opts của bạn như bạn muốn trong đó. Nó hoạt động với m2e đi kèm với Eclipse Indigo.

+0

Tôi sẽ thử điều này khi tôi quay lại làm việc – krams

33

Khi làm việc với plugin Maven 2, việc đặt các tùy chọn java trong eclipse.ini hoặc biến môi trường MAVEN_OPTS sẽ không ảnh hưởng đến bản dựng của bạn. Bạn cần thêm một số dòng lệnh args thông qua hộp thoại "Edit Configuration and launch" trong Eclipse.

"Chạy dưới dạng"> "Xây dựng Maven", nhấp vào tab "JRE", nhập VM args, ví dụ:

-Xms128M -Xmx512M

+1

có cách nào chúng tôi có thể vĩnh viễn thêm cấu hình này vào m2e không? để chúng ta không phải gõ vào mỗi lần chạy?/build? – KyelJmD

+4

Có, bạn có thể thêm chúng qua Eclipse> Tùy chọn> Maven> Cài đặt> "Cài đặt chung cho cài đặt được nhúng". Ở đó bạn có thể trỏ đến cài đặt maven của bạn bên ngoài Eclipse. – crasp

+0

Trong JBoss Developer Studio 8.1.0.GA, Tùy chọn> Maven> Bản cài đặt hiển thị hai Cài đặt Maven: EMBEDDED và WORKSPACE. Cả hai đều có màu xám, giống như nút Chỉnh sửa .... – nclark

8

Là một tiếp theo vào câu trả lời đã chấp nhận, khi quý vị gọi "mvn" trên dòng lệnh, bạn đang thực sự cách gọi các wrapper kịch bản mvn.bat (hoặc mvn.sh). Đó là kịch bản lệnh wrapper này sử dụng biến env MAVEN_OPTS khi khởi động jvm maven thực tế.

m2e, mặt khác, muốn kiểm soát nhiều hơn cách jvm maven được khởi động, vì vậy nó thực hiện điều này trực tiếp mà không có trình bao bọc. Đây là lý do tại sao bạn thêm các thiết lập bộ nhớ của bạn trực tiếp vào các đối số VM chạy/gỡ lỗi cấu hình m2e của bạn, thay vì sử dụng MAVEN_OPTS.

Nếu bạn muốn M2E để vượt qua những gì bạn đã có trong MAVEN_OPTS cho JVM maven, trong "Chỉnh sửa cấu hình và khởi động" hộp thoại trong Eclipse:

"Run As"> "Maven Xây dựng", bấm vào "JRE" tab, nhập VM args ví dụ

${env_var:MAVEN_OPTS} 
0

Bạn có thể thêm vào pom.xml của bạn thiết lập bộ nhớ của bạn:

<plugin> 
<artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    ... 
    <fork>true</fork> 
    <meminitial>128m</meminitial> 
    <maxmem>512m</maxmem> 
    ... 
    </configuration> 
</plugin> 

Các mô tả về tất cả các thông số maven-biên dịch-plugin là ở đây: link

Các vấn đề liên quan