IntelliJ - Chuyển đổi dự án / mô-đun Java thành mô-đun / dự án Maven


398

Tôi có một dự án trên Bitbucket. Chỉ có các nguồn được cam kết. Để truy xuất dự án vào một máy mới, tôi đã sử dụng Kiểm soát phiên bản> Thanh toán từ Kiểm soát phiên bản từ trong IntelliJ.

Sau đó nó hỏi liệu tôi có muốn tạo một dự án mới từ nguồn này không, mà tôi trả lời Có. Càng xa càng tốt. Nó tạo ra một dự án Java nhỏ đẹp cho tôi, bao gồm một mô-đun duy nhất.

Tuy nhiên, mục tiêu của tôi khi kéo dự án này vào IntelliJ là biến nó thành dự án Maven. Tôi không thể tìm thấy bất kỳ tùy chọn bất cứ nơi nào sẽ cho phép tôi làm điều này!

Có cách nào để IntelliJ chỉ tạo một pom.xml trống cơ bản cho tôi, với một tên và artifactId và một kho lưu trữ không? Hoặc, có cách nào để nhập dự án dưới dạng dự án Maven ngay từ đầu không? (Bất cứ khi nào tôi cố gắng tạo một dự án từ nguồn hiện có, nó chỉ cung cấp cho tôi tùy chọn của một dự án Java.)

Câu trả lời:


760

Nhấp chuột phải vào mô-đun, chọn "Thêm hỗ trợ khung ..." và kiểm tra công nghệ "Maven".

(Điều này cũng tạo ra một pom.xmlđể bạn sửa đổi.)

Nếu bạn có nghĩa là thêm các thành phần kho lưu trữ nguồn, tôi nghĩ bạn cần phải làm điều đó bằng tay, không chắc chắn.

Pre-IntelliJ 13 điều này sẽ không chuyển đổi dự án sang Giao diện thư mục tiêu chuẩn Maven , 13+ nó sẽ.


3
Chính xác những gì tôi đang tìm kiếm! Và vâng, tôi có nghĩa là thêm phần tử kho lưu trữ maven2 "Trung tâm" mặc định. Nhưng tôi có thể thêm rằng bản thân mình, không có vấn đề lớn.
Neil Traft

1
Mát mẻ. Nhưng bạn không cần phải thêm điều đó; nó đã là mặc định
Dave Newton

46
Điều gì xảy ra nếu tôi không có lựa chọn đó?

2
"bổ trợ" nào? Tôi có 2 phích cắm maven (mặc định là IntelliJ). Vẫn không có tùy chọn "Maven" trong Thêm khung
Nick

1
xin lỗi vì đã làm sống lại bài cũ này nhưng có cách nào tự động để đặt các phụ thuộc jsf vào pom không? Các pom được tạo ra nhưng nó trống rỗng, tôi muốn có tất cả các phụ thuộc thích hợp của một dự án jsf bên trong pom.
MrSir

76

Một hình ảnh cho những người được hưởng lợi từ nó.

nhập mô tả hình ảnh ở đây

Sau khi nhấp chuột phải vào tên dự án ("thử nghiệm" trong ví dụ này), chọn "Thêm hỗ trợ khung" và kiểm tra tùy chọn "Maven".


Cảm ơn bạn rất nhiều .....
smack cherry

31
  1. Mở 'Dự án Maven' (tab ở bên phải).
  2. Sử dụng 'Thêm dự án Maven'
  3. Tìm pom.xml của bạn

1
Khi tôi có một giám đốc mẹ git URL khi nhiều dự án phụ, các dự án phụ không được công nhận là Maven. Câu trả lời này đã giúp. Để làm rõ, chức năng này có sẵn trên Cửa sổ Công cụ Maven.
Sylvester

Câu trả lời này đã giúp tôi liên kết lại một dự án Gradle trở lại với Maven. Chỉ cần hủy liên kết nó (sử dụng dấu trừ) trên menu Gradle tương tự.
vphilipnyc

6

Tôi muốn thêm gợi ý quan trọng rằng chuyển đổi một dự án như thế này có thể có tác dụng phụ đáng chú ý khi bạn có một dự án lớn hơn. Điều này là do thực tế là Intellij Idea (2017) chỉ nhận một số cài đặt quan trọng từ pom.xml sau đó có thể dẫn đến một số nhầm lẫn, các phần sau bị ảnh hưởng ít nhất:

  1. Cài đặt chú thích được thay đổi cho các mô-đun
  2. Đường dẫn đầu ra của trình biên dịch được thay đổi cho các mô-đun
  3. Các cài đặt tài nguyên bị bỏ qua hoàn toàn và chỉ được lấy từ pom.xml
  4. Các phụ thuộc mô-đun bị rối và phải kiểm tra
  5. Cài đặt ngôn ngữ / mã hóa được thay đổi cho các mô-đun

Tất cả những điểm này cần xem xét và điều chỉnh nhưng sau đó nó hoạt động như sự quyến rũ.

Đáng tiếc hơn nữa là không có mẫu pom.xml đủ được tạo, tôi đã thêm một ví dụ có thể giúp giải quyết hầu hết các vấn đề.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Name</groupId>
<artifactId>Artifact</artifactId>
<version>4.0</version>
<properties>
    <!-- Generic properties -->
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
    <!--All dependencies to put here, including module dependencies-->
</dependencies>
<build>
    <directory>${project.basedir}/target</directory>
    <outputDirectory>${project.build.directory}/classes</outputDirectory>
    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory> ${project.basedir}/src/test/java</testSourceDirectory>

    <resources>
        <resource>
            <directory>${project.basedir}/src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <annotationProcessors/>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Chỉnh sửa 2019:

  • Đã thêm quét tài nguyên đệ quy
  • Đã thêm đặc tả thư mục có thể quan trọng để tránh nhầm lẫn IDEA phục hồi cấu trúc gốc nội dung

3

Tôi đã có một kịch bản khác, nhưng vẫn đáp ứng câu trả lời này.
Tôi đã nhập thư mục dự án gốc của mình có chứa nhiều dự án Maven nhưng cũng có một số nội dung khác được sử dụng trong dự án này.
IntelliJ đã nhận ra các tệp Java, nhưng không giải quyết được các phụ thuộc Maven.

Tôi đã sửa lỗi này bằng cách nhấp chuột phải vào từng pom và sau đó "Thêm vào như dự án maven"


3

Tôi đã giải quyết vấn đề tương tự bằng cách thực hiện các bước dưới đây:

  1. Tệp> Đóng dự án

  2. Dự án nhập khẩu

  3. Chọn bạn dự án thông qua cửa sổ bật lên tập tin hệ thống

  4. Kiểm tra nút radio "Nhập dự án từ mô hình bên ngoài" và chọn mục Maven

  5. Và một số nút Tiếp theo (chọn JDK, ...)

Sau đó, dự án sẽ được nhập dưới dạng mô-đun Maven.


2

Điều này đã sửa nó cho tôi: Mở tab dự án maven ở bên phải. Thêm pom nếu chưa xuất hiện, sau đó nhấp vào làm mới ở trên cùng bên trái của tab.


0

Cách dễ nhất là trực tiếp thêm dự án dưới dạng dự án Maven. Để thực hiện việc này, trong trình thám hiểm dự án ở bên trái, nhấp chuột phải vào tệp POM cho dự án, về phía dưới cùng của menu ngữ cảnh, bạn sẽ thấy một tùy chọn có tên 'Thêm dưới dạng Dự án Maven', nhấp vào nó. Điều này sẽ tự động chuyển đổi dự án thành dự án Maven

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.