2012-08-02 36 views
13

Tôi đã chỉ tò mò muốn biết điều này, khi tôi cho mvn cài đặt mà không làm 'sạch', maven biên dịch chỉ các tập tin java sửa đổi. Làm thế nào để maven xác định một tập tin java được sửa đổi hay không? Tôi tin rằng nó không sử dụng thuộc tính sửa đổi cuối cùng của tập tin. Lý do cho niềm tin của tôi: Tôi đã có một mô-đun, sau khi sáp nhập một thay đổi từ svn, tôi đã cài đặt mvn và nó không biên dịch tập tin đã sửa đổi và khi tôi nhìn vào thay đổi tôi thấy rằng 'long' đã được sửa đổi thành 'Long' trong getters và setters.Làm thế nào để maven chỉ biên dịch các tệp java đã sửa đổi?

Vì vậy, tôi chỉ muốn biết làm cách nào để xác định xem có phải một tệp java đã thay đổi hay không?

(Tái bút: Tôi đang sử dụng Apache Maven 3.0.3, nếu có vấn đề)

+0

Tôi đoán nó sử dụng svn st? – Fakrudeen

+0

nếu mô-đun không nằm trong điều khiển phiên bản thì –

+0

thì (thời gian tệp lớp sửa đổi – Fakrudeen

Trả lời

15

Tôi tin rằng Maven biên dịch plugin sử dụng ngày sửa đổi lần cuối vào file nguồn và lớp để xác định xem biên dịch lại là cần thiết.

Trình biên dịch website khá ngắn về thông tin, nhưng trang mục tiêu compiler:compile có thông tin về thuộc tính sau, tinh chỉnh các tính toán độ chính xác: http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#staleMillis. Đó là về tuyên bố chính thức duy nhất về sự cứng rắn.

+0

Đoán niềm tin của tôi là sai và nó sử dụng tài sản sửa đổi lần cuối. Cảm ơn các liên kết! –

5

Mà không biết nhiều về maven, tôi có thể cho bạn biết rằng nói chung, "làm" công cụ -like sử dụng "cuối cùng đã thay đổi" dấu thời gian, mà sẽ giải thích vấn đề bạn đã có với svn (xem Wikipedia on Subversion's weaknesses.

+0

bạn nói đúng! cảm ơn :) –

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