IntelliJ: converte un progetto / modulo Java in un progetto / modulo Maven


398

Ho un progetto su Bitbucket. Solo le fonti sono impegnate. Per recuperare il progetto su una nuova macchina, ho usato Controllo versione> Acquista da Controllo versione da IntelliJ.

Quindi chiede se vorrei creare un nuovo progetto da questa fonte, a cui rispondo Sì. Fin qui tutto bene. Crea un bel piccolo progetto Java per me, costituito da un singolo modulo.

Tuttavia, il mio obiettivo di inserire questo progetto in IntelliJ era di trasformarlo in un progetto Maven. Non riesco a trovare alcuna opzione che mi permetta di farlo!

C'è un modo per fare in modo che IntelliJ generi semplicemente un pom.xml vuoto di base per me, con un nome, un artefatto e un repository? Oppure, c'è un modo per importare il progetto come progetto Maven in primo luogo? (Ogni volta che provo a creare un progetto da una fonte esistente, mi dà solo la possibilità di un progetto Java.)

Risposte:


760

Fare clic con il tasto destro del mouse sul modulo, selezionare "Aggiungi supporto framework ..." e verificare la tecnologia "Maven".

(Questo crea anche un pom.xmlda modificare.)

Se intendi aggiungere elementi del repository di origine, penso che tu debba farlo manualmente, non ne sono sicuro.

Pre-IntelliJ 13 questo non converte il progetto nel layout di directory standard Maven , 13+ lo farà.


3
Esattamente quello che stavo cercando! E sì, intendevo aggiungere l'elemento repository "Central" predefinito maven2. Ma posso aggiungerlo anche io, niente di grave.
Neil Traft,

1
Freddo. Ma non dovresti aggiungerlo; è già l'impostazione predefinita.
Dave Newton,

46
Cosa succede se non ho questa opzione?

2
quali "plugin"? Ho 2 spine maven (è venuto predefinito con IntelliJ). Ancora nessuna opzione "Maven" in Aggiungi frame
Nick

1
scusa per aver rilanciato questo vecchio post, ma c'è un modo automatico per mettere le dipendenze jsf nel pom? Il pom viene creato ma è vuoto, mi piacerebbe avere tutte le dipendenze appropriate di un progetto jsf all'interno del pom.
MrSir,

76

Un'immagine per coloro che ne traggono beneficio.

inserisci qui la descrizione dell'immagine

Dopo aver fatto clic con il pulsante destro del mouse sul nome del progetto ("test" in questo esempio), selezionare "Aggiungi supporto framework" e selezionare l'opzione "Maven".


Grazie mille .....
smack cherry

31
  1. Apri "Progetti Maven" (scheda a destra).
  2. Usa "Aggiungi progetti Maven"
  3. Trova il tuo pom.xml

1
Quando ho avuto un genitore git URL quando molti progetti secondari, i progetti secondari non venivano riconosciuti come Maven. Questa risposta ha aiutato. Per chiarire, questa funzionalità è disponibile nella finestra dello strumento Maven.
Sylvester,

Questa risposta mi ha aiutato a riassociare un progetto Gradle a Maven. Ho solo bisogno di scollegarlo (usare il segno meno) nel menu Gradle analogo.
vphilipnyc,

6

Voglio aggiungere il suggerimento importante che la conversione di un progetto come questo può avere effetti collaterali che si notano quando si ha un progetto più grande. Ciò è dovuto al fatto che Intellij Idea (2017) prende alcune impostazioni importanti solo da pom.xml, il che può creare confusione, almeno le seguenti sezioni sono interessate:

  1. Le impostazioni di annotazione vengono modificate per i moduli
  2. Il percorso di uscita del compilatore viene modificato per i moduli
  3. Le impostazioni delle risorse vengono ignorate totalmente e prese solo da pom.xml
  4. Le dipendenze del modulo sono incasinate e devono essere verificate
  5. Le impostazioni di lingua / codifica vengono modificate per i moduli

Tutti questi punti devono essere rivisti e modificati, ma dopo ciò funziona come un incantesimo.

Inoltre, sfortunatamente non è stato creato un modello pom.xml sufficiente, ho aggiunto un esempio che potrebbe aiutare a risolvere la maggior parte dei problemi.

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

Modifica 2019:

  • Aggiunta scansione ricorsiva delle risorse
  • Aggiunte specifiche di directory che potrebbero essere importanti per evitare confusione tra IDEA e la struttura della radice del contenuto

3

Ho avuto uno scenario diverso, ma sono ancora arrivato a questa risposta.
Avevo importato la mia cartella del progetto principale contenente più progetti Maven ma anche alcune altre cose utilizzate in questo progetto.
IntelliJ ha riconosciuto i file Java, ma non ha risolto le dipendenze di Maven.

Ho risolto il problema facendo un clic con il tasto destro su ogni pom e poi "Aggiungi come progetto maven"


3

Ho risolto lo stesso problema procedendo come segue:

  1. File> Chiudi progetto

  2. Importa progetto

  3. Seleziona il tuo progetto tramite il popup del file di sistema

  4. Seleziona il pulsante di opzione "Importa progetto da modello esterno" e seleziona la voce Maven

  5. E alcuni pulsanti Avanti (selezionare JDK, ...)

Quindi il progetto verrà importato come modulo Maven.


2

Questo mi ha risolto: Apri la scheda dei progetti di Mven sulla destra. Aggiungi il pom se non ancora presente, quindi fai clic su aggiorna in alto a sinistra nella scheda.


0

Il modo più semplice è aggiungere direttamente il progetto come progetto Maven. Per fare ciò, nell'esploratore del progetto a sinistra, fai clic con il pulsante destro del mouse sul file POM per il progetto, verso la parte inferiore del menu di scelta rapida, vedrai un'opzione chiamata 'Aggiungi come progetto Maven', fai clic su di esso. Ciò convertirà automaticamente il progetto in un progetto Maven

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.