2011-09-15 37 views
7

Tôi có một dự án Java, với Trình tạo Java chuẩn được chọn làm trình xây dựng duy nhất. Ngoài ra, xây dựng được cấu hình để xây dựng tự động.Thêm Nhà Xây dựng vào Dự án trong Eclipse và Gia tăng-số

Điều tôi muốn hiểu là trường hợp xây dựng kết quả khi tôi thêm kiến ​​xây dựng vào dự án này (project -> properties -> builders). Những gì tôi mong đợi, là mỗi khi tôi thực hiện một thay đổi đối với nguồn Java của mình, cả Trình dựng Java và kiến ​​tạo của tôi sẽ chạy, nhưng dường như việc xây dựng kiến ​​của tôi không chạy.

Khi lần đầu tiên thêm bản kiến ​​kiến, nó chạy, tức là tôi thấy đầu ra trong bảng điều khiển. Tuy nhiên, khi tôi thực hiện thay đổi đối với các tệp nguồn của mình, nó không chạy lại, tức là tôi không thấy đầu ra trong bảng điều khiển. Tôi biết rằng Trình tạo Java vẫn đang chạy do thực tế là các thay đổi của tôi đã được nhập vào nhận thức mã Eclipses, tức là tôi có thể tham chiếu những thay đổi đó từ các lớp khác, v.v.

Lưu ý, nếu tôi gọi thủ công, tức là qua Project -> Build All, kiến ​​xây dựng chạy, tức là tôi thấy đầu ra trong giao diện điều khiển một lần nữa.

Vì vậy, tại sao kiến ​​kiến ​​mà tôi chưa thêm chạy với tòa nhà tự động? Lưu ý, tôi sẽ không nhất thiết mong đợi nó có thể làm công việc gia tăng, vì nó không được thực hiện cho điều đó, nhưng tôi đã nghĩ nó sẽ cháy khi Java Builder bắn ra? Tui bỏ lỡ điều gì vậy?

+0

Liên kết này (http://www.eclipse.org/articles/Article-Builders/builders.html) dường như gợi ý rằng có lẽ kiến ​​xây dựng của tôi đang chạy, trong nền và kết quả đầu ra không đến Bàn điều khiển. Nó cũng gợi ý rằng cả bản dựng tự động và xây dựng Tất cả đều là "gia tăng" trong đó người xây dựng sẽ nhận được một đồng bằng thay đổi để nó có thể áp dụng công việc xây dựng của nó tăng dần. . . nhưng nếu đây là trường hợp, tôi không hoàn toàn hiểu cách build.xml kiến ​​của tôi sẽ có quyền truy cập vào thông tin delta đó. . . – chad

+0

Dude !! Có NOTHING trên internet về điều này !! Tôi đã đập đầu vào tường về người xây dựng mà tôi đã viết và không hoạt động !!! Bạn có tìm thấy câu trả lời cho câu hỏi của mình không? –

+2

không. Bạn nên upvote câu hỏi của tôi và có lẽ nó sẽ thu hút sự chú ý của một số folks eclipse hiểu biết nhiều hơn nữa. – chad

Trả lời

1

Trình tạo kiến ​​hoặc bất kỳ người xây dựng nào khác cho vấn đề đó, có một số phương pháp để xây dựng một dự án. Khi một xây dựng xảy ra trong Eclipse, phương thức build(int kind, Map<String, String> args, IProgressMonitor monitor) của tất cả các trình tạo tích cực được gọi, nhưng, có các kiểu xây dựng khác nhau, mà bất kỳ trình xây dựng nào kiểm tra trong phương thức build. Các loại hợp đồng xây dựng bao gồm:

FULL_BUILD 
AUTO_BUILD 
INCREMENTAL_BUILD 
CLEAN_BUILD 

Dưới đây là một cú pháp ví dụ về xây dựng:

protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException { 
    if (kind == FULL_BUILD) { 
     fullBuild(monitor); 
    } else { 
     IResourceDelta delta = getDelta(getProject()); 
     if (delta == null) { 
      fullBuild(monitor); 
     } else { 
      incrementalBuild(delta, monitor); 
     } 
    } 
    return null; 
} 

Như bạn có thể thấy, một người thợ xây có thể quyết định để phản ứng với một loại xây dựng, và thậm chí đóng vai trò khác nhau đối với các loại xây dựng khác nhau, do đó, tôi đoán là, trình tạo kiến ​​được triển khai để nó chỉ phản ứng với toàn bộ bản dựng và không xây dựng gia tăng.

0

Bạn đã định cấu hình trình tạo Ant của mình để chạy trong quá trình xây dựng "tự động" chưa? Để làm như vậy, hãy chọn thuộc tính của trình tạo, truy cập trang Targets và sử dụng Set Targets cho Auto Build.

Tôi có trình tạo Ant đang chạy trong dự án Eclipse của tôi trên tất cả các loại bản dựng (do đó cũng lưu các tệp nguồn đã chỉnh sửa) và tôi không nhớ thay đổi bất kỳ thứ gì khác.

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