IntelliJ - Konversi proyek / modul Java menjadi proyek / modul Maven

398

Saya punya proyek di Bitbucket. Hanya sumber yang berkomitmen. Untuk mengambil proyek ke mesin baru, saya menggunakan Kontrol Versi> Checkout dari Kontrol Versi dari dalam IntelliJ.

Ia kemudian bertanya apakah saya ingin membuat proyek baru dari sumber ini, yang saya jawab Ya. Sejauh ini bagus. Ini menciptakan proyek Java kecil yang menyenangkan bagi saya, yang terdiri dari satu modul.

Namun, tujuan saya dalam menarik proyek ini ke IntelliJ adalah mengubahnya menjadi proyek Maven. Saya tidak dapat menemukan opsi mana pun yang memungkinkan saya melakukan ini!

Apakah ada cara untuk membuat IntelliJ hanya menghasilkan pom.xml kosong dasar untuk saya, dengan nama dan artifactId dan repositori? Atau, adakah cara untuk mengimpor proyek sebagai proyek Maven? (Setiap kali saya mencoba membuat proyek dari sumber yang ada, itu hanya memberi saya pilihan untuk proyek Java.)

Neil Traft
sumber

Jawaban:

760

Klik kanan pada modul, pilih "Tambahkan dukungan kerangka kerja ...", dan periksa teknologi "Maven".

(Ini juga membuat pom.xmlAnda dapat memodifikasi.)

Jika Anda bermaksud menambahkan elemen repositori sumber, saya pikir Anda perlu melakukannya secara manual – tidak yakin.

Pra-IntelliJ 13 ini tidak akan mengubah proyek ke Layout Direktori Maven Standar , 13+ itu akan.

Dave Newton
sumber
3
Persis apa yang saya cari! Dan ya, maksud saya menambahkan elemen repositori maven2 "Central" default. Tapi saya bisa menambahkannya sendiri, bukan masalah besar.
Neil Traft
1
Keren. Tetapi Anda tidak perlu menambahkan itu; ini sudah standar.
Dave Newton
46
Apa yang terjadi jika saya tidak memiliki opsi itu?
2
"plugin" yang mana? Saya memiliki 2 colokan maven (standarnya adalah IntelliJ). Masih tidak ada opsi "Maven" di Add Frameworks
Nick
1
maaf karena menghidupkan kembali postingan lama ini, tetapi adakah cara otomatis untuk menempatkan dependensi jsf ke pom? Pom dibuat tetapi itu kosong, saya ingin memiliki semua dependensi yang tepat dari proyek JSF di dalam Pom.
MrSir
76

Visual untuk mereka yang mendapat manfaat dari itu.

masukkan deskripsi gambar di sini

Setelah mengklik kanan nama proyek ("test" dalam contoh ini), pilih "Tambahkan dukungan kerangka kerja" dan centang opsi "Maven".

Crt
sumber
Terima kasih banyak .....
smack cherry
31
  1. Buka 'proyek Maven' (tab di sisi kanan).
  2. Gunakan 'Tambah Proyek Maven'
  3. Temukan pom.xml Anda
FazoM
sumber
1
Ketika saya memiliki direktur git URL induk ketika banyak sub proyek, sub proyek tidak dikenali sebagai Maven. Jawaban ini membantu. Untuk membuatnya jelas, fungsi ini tersedia di Jendela Alat Maven.
Sylvester
Jawaban ini membantu saya untuk mengaitkan kembali proyek Gradle kembali ke Maven. Hanya perlu memutus tautannya (gunakan tanda minus) pada menu Gradle analog.
vphilipnyc
6

Saya ingin menambahkan petunjuk penting bahwa mengubah proyek seperti ini dapat memiliki efek samping yang terlihat ketika Anda memiliki proyek yang lebih besar. Ini karena fakta bahwa Intellij Idea (2017) mengambil beberapa pengaturan penting hanya dari pom.xml lalu yang dapat menyebabkan beberapa kebingungan, bagian berikut paling tidak terpengaruh:

  1. Pengaturan anotasi diubah untuk modul
  2. Jalur keluaran kompiler diubah untuk modul
  3. Pengaturan sumber daya diabaikan sepenuhnya dan hanya diambil dari pom.xml
  4. Ketergantungan modul kacau dan harus diperiksa
  5. Pengaturan Bahasa / Pengkodean diubah untuk modul

Semua poin ini perlu ditinjau dan disesuaikan tetapi setelah ini berfungsi seperti pesona.

Lebih lanjut lebih lanjut lagi sayangnya tidak ada template pom.xml yang cukup dibuat, saya telah menambahkan contoh yang mungkin membantu untuk memecahkan sebagian besar masalah.

<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>

Edit 2019:

  • Menambahkan pemindaian sumber daya rekursif
  • Menambahkan spesifikasi direktori yang mungkin penting untuk menghindari kebingungan IDEA mengingat struktur root konten
Thomas
sumber
3

Saya memiliki skenario yang berbeda, tetapi masih mendapatkan jawaban ini.
Saya telah mengimpor folder proyek root saya yang berisi beberapa proyek Maven tetapi juga beberapa hal lain yang digunakan dalam proyek ini.
IntelliJ mengenali file Java, tetapi tidak menyelesaikan dependensi Maven.

Saya memperbaikinya dengan melakukan klik kanan pada setiap pom dan kemudian "Tambahkan sebagai proyek pakar"

John Blackwell
sumber
3

Saya telah mengatasi masalah yang sama ini dengan melakukan langkah-langkah di bawah ini:

  1. File> Tutup Proyek

  2. Proyek Impor

  3. Pilih proyek Anda melalui popup file sistem

  4. Periksa tombol radio "Impor proyek dari model eksternal" dan pilih entri Maven

  5. Dan beberapa tombol Berikutnya (pilih JDK, ...)

Kemudian proyek akan diimpor sebagai modul Maven.

Walid Ammou
sumber
2

Ini memperbaikinya bagi saya: Buka tab proyek pakar di sebelah kanan. Tambahkan pom jika belum ada, lalu klik segarkan di kiri atas tab.

ZoltanT
sumber
0

Cara termudah adalah dengan menambahkan proyek sebagai proyek Maven secara langsung. Untuk melakukan ini, di penjelajah proyek di sebelah kiri, klik kanan pada file POM untuk proyek, menuju bagian bawah menu konteks, Anda akan melihat opsi yang disebut 'Tambahkan sebagai Proyek Maven', klik itu. Ini secara otomatis akan mengubah proyek menjadi proyek Maven

Testilla
sumber