Nhập dự án Maven vào Eclipse từ Git


100

Làm cách nào để tôi có được hiệu quả của việc chọn nhập từ cả Maven và Git và để Eclipse tạo đúng dự án của tôi?

Để đưa dự án của tôi vào Eclipse, tôi có thể chọn File-> import-> maven và sau đó tôi nhận tất cả các dự án Maven được nhập và có thể xây dựng tốt, hoặc tôi có thể chọn File-> import-> git và tạo một dự án mới bỏ qua pom .xml và không tạo dự án đúng cách.

Có vẻ như tôi có thể làm cái này hay cái kia nhưng không kết hợp cả hai để tôi có được một dự án được tạo chính xác.

Câu trả lời:


103

Eclipse Indigo + M2Eclipse 1.0 làm cho nó rất dễ dàng.

Nếu bạn chưa có đầu nối Git cho M2Eclipse, hãy cài đặt nó. M2Eclipse sẽ giúp bạn bằng cách nhắc bạn trên menu Nhập.

  1. Chọn menu ngữ cảnh "Nhập ..." từ chế độ xem Trình khám phá gói
  2. Chọn tùy chọn "Kiểm tra các dự án Maven từ SCM" trong danh mục Maven
  3. Trên cửa sổ được hiển thị, hãy chọn liên kết "Tìm thêm trình kết nối SCM trong m2e Marketplace
  4. Tìm trình kết nối cho Git ... cài đặt ... khởi động lại

Lưu ý rằng trong hộp tìm kiếm, bạn có thể phải nhập "EGit" thay vì "Git" để tìm đúng trình kết nối.

Sau khi hoàn tất, bạn chỉ cần vào kho lưu trữ EGit, hiển thị menu ngữ cảnh cho thư mục Working và chọn "Nhập các dự án Maven ...".

Làm xong!


4
Tôi đã thực hiện việc này trong Indigo nhưng trong Juno hiện có một lỗi khiến m2e-git SCM không được cài đặt. bugs.eclipse.org/bugs/...
Codey McCodeface

1
@ medPhys-pl Đó dường như là một vấn đề liên quan đến m2e và EGit chứ không phải chính Git.
Sri Sankaran

1
"dễ dàng" là tương đối. Toàn bộ thị trường nhật thực là một mớ hỗn độn , các kho lưu trữ maven là một mớ hỗn độn vì chúng không theo dõi khả năng tương thích, vì vậy bạn sẽ có hàng tá bản sao của gói gần như giống hệt nhau và bây giờ việc thêm một "thị trường m2e" không làm cho mọi thứ tốt hơn .
Có QUIT - Anony-Mousse,

1
@ Anony-Mousse: Tôi đồng ý rằng "dễ dàng" là tương đối. Tuy nhiên, tôi đã sử dụng điều đó để mô tả kinh nghiệm của mình trong việc giải quyết câu hỏi ban đầu (nhập vào Eclipse từ kho lưu trữ Git). Kỉ niệm của bạn có thể hợp lệ nhưng không phải là vấn đề đang được giải quyết.
Sri Sankaran

2
Có sự sửa chữa trong Bước 4, nó phải là "..connector cho EGit ..". Để được tìm kiếm cụ thể m2e-egit trên thị trường.
nanospeck

41

Tôi sẽ thực hiện một bản sao git thông qua dòng lệnh (bên ngoài Eclipse), sau đó sử dụng Tệp -> Nhập ... -> Dự án Maven hiện có .

Các dự án của bạn sẽ được hiểu là sử dụng Git và Maven. Đây là cách nhanh nhất và đáng tin cậy nhất để nhập IMO.


3
Vâng, điều này chắc chắn hoạt động, nhưng m2 mới hơn cuối cùng đã tích hợp tốt với git và svn. Như những người khác đã lưu ý, EGit 1.0.0, m2e 1.0 và m2e-egit 0.13 sẽ cung cấp cho bạn git -> hiện thực hóa dự án mvn thành nhật thực trong một bước.
thetoolman

Rất tiếc, tôi phải nhấp chuột phải vào dự án và sử dụng "Nhóm> Chia sẻ dự án", v.v. để EGit nhận ra rằng đó là một dự án Git.
Brian McCutchon

19

Bước 1: Thiết lập Eclipse

Trước hết, bạn sẽ cần cài đặt một số trình cắm thêm Eclipse. Vì vậy, hãy sử dụng tính năng cài đặt phần mềm IDE eclipse trong menu thả xuống trợ giúp → Cài đặt phần mềm mới và thêm liên kết vào Trang web Phần mềm Có sẵn, sau đó cài đặt nó.

  1. Plugin GIT (EGIT) - http://download.eclipse.org/egit/updates
  2. Plugin Eclipse Maven (M2Eclipse) - http://download.eclipse.org/technology/m2e/releases
  3. Maven SCM Handler cho EGit (m2e-egit)

    Cài đặt từ M2E Marketplace (Cài đặt → Maven → Khám phá → Mở Danh mục và tìm kiếm "m2e-egit")


Bước 2: Sao chép kho lưu trữ

Sao chép (tải xuống) Dự án Maven của bạn từ Git

Kiểm tra các dự án Maven không phải nhật thực từ Git (Tệp → Nhập .. → Maven → Kiểm tra các dự án Maven từ SCM)

Tệp → Nhập .. → Maven → Kiểm tra các dự án Maven từ SCM

Bây giờ, hãy thêm liên kết kho lưu trữ git của bạn vào trường SCM URI, sau đó nhấp vào tiếp theo và kết thúc.


18

Kể từ khi viết (cập nhật) này, một thiết lập đang hoạt động như sau:

  1. Eclipse 3.8 (trang cập nhật Eclipse Indigo)
  2. EGit 1.3.0 (trang cập nhật Eclipse Indigo)
  3. m2e 1.0.200 (trang web cập nhật Eclipse Indigo)
  4. m2e-egit 0.14.0 (thị trường m2e khi thêm trình kết nối)

Đã thử nghiệm trên Ubuntu Raring.

Bạn chắc chắn có thể "Nhập" -> "Maven" -> "Kiểm tra các dự án Maven từ SCM", và đây là cách nhanh nhất. Tuy nhiên, việc nhập trực tiếp như vậy hiện không cung cấp cho bạn quyền kiểm soát đối với tên thư mục kho lưu trữ nhân bản. Bạn có thể làm việc tốt hơn từ Chế độ xem "Kho lưu trữ Git" và thực hiện "Sao chép từ Kho lưu trữ Git và thêm bản sao vào chế độ xem này", tiếp theo là "Nhập các dự án Maven" từ bản sao đó; cách lâu nhất sẽ là sao chép thủ công của bạn và sau đó "Thêm kho lưu trữ Git cục bộ hiện có vào chế độ xem này", tiếp theo là "Nhập dự án Maven". Trong mọi trường hợp, bạn có toàn quyền kiểm soát thư mục được sao chép.

Nhận xét cuối cùng về một vấn đề phụ khiến tôi thất vọng khóc. Theo như tôi biết, nếu kho lưu trữ nhân bản nằm trên thư mục gốc của không gian làm việc Eclipse của bạn và hệ thống phân cấp tệp dự án Maven của bạn có POM trên thư mục gốc, thì việc nhập dự án gốc đó sẽ đổi tên thư mục được nhân bản (với mẫu bạn đã chọn, mặc định thành [ArtifactId]). Không thay đổi cấu trúc dự án của bạn và không giữ các tệp bên ngoài không gian làm việc của bạn, bạn có thể dễ dàng giải quyết vấn đề này bằng cách sao chép trên một thư mục con của thư mục không gian làm việc.


13

Tôi đã thử nghiệm điều này cho dự án của mình.

  1. Eclispe Indigo
  2. "Trợ giúp> Cài đặt Phần mềm Mới" Bật / Cài đặt các trình cắm thêm Git chính thức tại "Plugin Eclipse Git .." và cài đặt nhiều.
  3. Kích hoạt trình kết nối Maven / EGit với các hướng dẫn này Làm cách nào để tích hợp git hoạt động với m2eclipse?
  4. Chuyển sang phối cảnh Kho lưu trữ Git. Nhấp chuột phải dán url git của dự án. Tất cả các giá trị mặc định sẽ hoạt động. Bạn có thể muốn thay đổi thư mục cài đặt mà nó đoán.
  5. Mở rộng kho lưu trữ nhân bản và nhấp chuột phải vào "Cây làm việc" và chọn "Nhập dự án Maven ...".
  6. Chuyển sang quan điểm Java. Nhấp chuột phải vào dự án và chọn "Nhóm> Chia sẻ Dự án". Chọn "Git" và nhớ đánh dấu vào ô "Sử dụng hoặc tạo kho lưu trữ trong thư mục mẹ của dự án".

1
Vâng, tôi đã làm như vậy. Không undestand, tại sao m2e-egit không thực hiện bước 6. tự động.
xmedeko

6

Đây là cách giải quyết của tôi, đây là giải pháp cho những vấn đề này:

  • Bạn không thể cài đặt m2e-egit (Tôi gặp lỗi trong Juno)
  • Chuyển đổi một dự án chung (được kết nối với kho lưu trữ Git của bạn) thành một dự án Maven không hoạt động với bạn (Bước Nhập dự án Maven có vẻ cần thiết)
  • Việc nhập Dự án Maven từ kho lưu trữ của bạn trên hệ thống tệp không hiển thị dự án được kết nối với Git.

  1. Thiết lập kho lưu trữ Git của bạn trong quan điểm Khám phá kho lưu trữ Git .
    • Chuyển sang phối cảnh Java, Nhập> Dự án Maven hiện có
    • Duyệt đến mục kiểm tra Git của bạn trong hệ thống tệp, chọn thư mục chứa tệp pom.xml. Kết thúc quá trình nhập; bạn sẽ nhận thấy những dự án này không được kết nối với Git. :-(
    • Xóa các dự án này, nhưng KHÔNG XÓA khỏi hệ thống lọc . Chúng tôi không muốn bản sao của mình bị xóa; tác vụ này cũng để lại tệp .project để chúng ta có thể nhập trong bước tiếp theo.
  2. Quay lại phối cảnh Khám phá kho lưu trữ Git .
    • Nhấp chuột phải vào kho lưu trữ của bạn, Nhập dự án ...
    • Chọn Nhập các dự án hiện có
    • Trong trình khám phá bên dưới, hãy duyệt đến và chọn thư mục chứa tệp pom.xml (và tệp .project), sau đó nhấp vào tiếp theo.
    • Tiếp tục qua trình hướng dẫn.

Trong Eclipse Luna, nó hoạt động sau bước 1.2 (dự án được kết nối với Git sau lần nhập đầu tiên).
PJ_Finnegan

4

Nhập mà không cần cài đặt bất kỳ trình kết nối bổ sung nào cho Mylyn:

  1. Mở Git Repositorieschế độ xem (Window-> Show view-> Git Repositories)
  2. Nhấn Clone a Git Repositorynút và tiếp tục với tất cả các bước
  3. Trong mở rộng kho lưu trữ mới được tạo Working Directory, nhấp chuột phải vào thư mục có dự án của bạn và chọn Import Projects. Sau đó chọn Import existing projectshoặc chọn Import as general project. Nếu cần sau khi nhập, hãy nhấp chuột phải vào dự án của bạn và chọn Định cấu hình-> Chuyển đổi thành Dự án Maven (và Maven-> Cập nhật Dự án).

3

Bạn nên lưu ý rằng đặt siêu dữ liệu đã tạo dưới quyền kiểm soát phiên bản (giả sử là git hoặc bất kỳ scm nào khác), không phải là ý kiến ​​hay nếu có nhiều nhà phát triển làm việc trên codebase. Hai nhà phát triển có thể có một dự án hoặc thiết lập classpath hoàn toàn khác nhau. Chỉ cần lưu ý trong trường hợp bạn có ý định chia sẻ mã vào một lúc nào đó ...


2

Tôi có một dự án maven với ba mô-đun con được quản lý bằng git. Tôi thiết lập chúng trong nhật thực như sau:

  1. Tôi đã đăng ký kho lưu trữ git với eclipse bằng EGit
  2. Tôi đã nhập các dự án dưới dạng Dự án Maven hiện có
  3. Đối với mỗi dự án, tôi đã đi Team | Chia sẻ dự án .

1

Tôi muốn nhập các dự án vào Eclipse dưới dạng mavencác dự án hơn là gitdự án. Làm điều này sẽ vẫn cho phép nội dung dự án được công nhận là nội dung git. Bạn có thể tiếp tục thực hiện các thao tác git từ Eclipse. Như bạn đã đề cập, điều ngược lại là không đúng.

Bản chất của một dự án trong Eclipse không dựa trên SCM chứa dự án, mà dựa trên loại dự án - dù là war hay jar, v.v. - được xác định một cách tự động khi dự án được nhập dưới dạng maven project.

Tôi sẽ do dự khi đăng ký siêu dữ liệu SCM IDE cụ thể. Làm như vậy giả định rất nhiều điều - tất cả các nhà phát triển đang sử dụng cùng một IDE hoặc phiên bản của IDE, có thể là cùng một phiên bản JDK / JRE, rằng họ tiếp tục sử dụng cùng một phiên bản trong suốt vòng đời của dự án, v.v.


1

Bạn không thể import nó như là một dự án git và sau đó (nếu bạn có các m2eclipse cài đặt) nhấp chuột phải vào dự án trong Package Explorer > Maven> Enable Dependency Management?


1
Nếu không nhìn thấy được và bạn có sau đó M2E được cài đặt mở file .project và thêm bản chất maven2 bản thân: <name> org.eclipse.m2e.core.maven2Builder </ name>
dimitrisli

1

Sau khi kiểm tra chi nhánh của mình trong Egit, tôi chuyển sang Chế độ xem Java, sau đó sử dụng Tệp -> Nhập, Git -> Dự án từ Git, sau đó chọn thư mục maven cấp cao nhất. Đây là với Eclipse Kepler.


-3

Thay vì liên tục tạo siêu dữ liệu dự án thông qua lệnh import-> maven, bạn có thể tạo siêu dữ liệu dự án của mình một lần và đặt nó trong kho lưu trữ git cùng với phần còn lại của mã nguồn. Sau cùng, sử dụng lệnh import-> git sẽ nhập một dự án hỗ trợ maven thích hợp, giả sử bạn đã cài đặt công cụ maven.

Đảm bảo đặt vào hệ thống kiểm soát nguồn tất cả các tệp trong dự án dir bắt đầu bằng '.' chẳng hạn như .classpath và .project cùng với toàn bộ nội dung của thư mục .settings.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.