2011-06-30 16 views
6

Tôi có hai dự án trong eclipse:Sử dụng maven để kết nối với một dự án địa phương

  1. khuôn khổ: Một thư viện chung được sử dụng trong một số dự án.
  2. khách hàng: Dự án sử dụng framework.

client là khá lớn, có thể lớn hơn framework tại thời điểm này. Tôi đang sử dụng client làm loại thử nghiệm cho framework. Tôi muốn thực hiện một vài thay đổi trong framework và kiểm tra chúng trong client. Hiện tại, tôi phải tạo một bản dựng đầy đủ của framework, cài đặt nó vào một repo maven, và sau đó xây dựng lại client.

Có cách nào chỉ để có client trỏ đến framework trực tiếp trên đĩa cục bộ của tôi không? Bất kỳ gợi ý nào khác để phát triển trong tình huống như vậy (nghĩa là cách tốt hơn)?

Trả lời

6

Bạn có thể chỉ phụ thuộc từ đĩa địa phương sử dụng <systemPath> như vậy:

<dependency> 
    <groupId>example.logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.0.0</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/commons-logging.jar</systemPath> 
</dependency> 

Tôi không chắc chắn nếu bạn có thể trỏ đến một thư mục mà có một pom trong nó, nhưng ít nhất bạn don không phải triển khai nó vào maven.

+1

Tôi biết có một cách để làm điều này. Cảm ơn bạn. – User1

+1

Đó không phải là cách hay để quản lý sự phụ thuộc của bạn. Nếu khung được đề cập không phải là một dự án maven, hãy tạo nó và cài đặt nó vào kho lưu trữ cục bộ, và sau đó là một kho lưu trữ từ xa nếu bạn muốn làm việc từ nhiều máy. Bằng cách đó bạn sẽ giải quyết sự phụ thuộc này giống như bất kỳ cách nào khác. –

+0

@DominykasMostauskis - Câu hỏi không phải là cách tốt nhất để làm điều này là gì. – marchaos

3

Plugin m2eclipse khá thông minh về phụ thuộc Maven. Nếu bạn có sự phụ thuộc framework mở như một dự án riêng biệt trong Eclipse, tôi nghĩ rằng nó nên sử dụng mã của nó cho client thay vì phiên bản trong kho lưu trữ của bạn. Bạn có thể cần phải tinh chỉnh các thiết lập dự án của bạn nếu bạn đã sử dụng m2eclipse và nó không làm điều này.

+0

Có, bạn có thể giải quyết các phụ thuộc từ các dự án không gian làm việc. – gary

21

Chạy mvn install trên Framework sẽ xây dựng và cài đặt nó trong kho lưu trữ Maven cục bộ của bạn (nghĩa là kho lưu trữ Maven trên đĩa cục bộ của bạn). Khi bạn chạy thử nghiệm của mình trong Máy khách, Maven sẽ tự động sử dụng phiên bản Khung trong kho lưu trữ cục bộ của bạn.

+0

Điều này có vẻ như một cách tốt hơn để quản lý các phụ thuộc cục bộ hơn systemPath vì nó cho phép các gói khác nhau tham chiếu các bản dựng cụ thể nếu bạn đang sử dụng phiên bản ảnh chụp nhanh. – Pridkett

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