447 Stimmen

IntelliJ - Konvertieren eines Java-Projekts/Moduls in ein Maven-Projekt/Modul

Ich habe ein Projekt auf Bitbucket. Nur die Quellen werden übertragen. Um das Projekt auf einen neuen Rechner zu übertragen, habe ich Versionskontrolle > Auschecken aus der Versionskontrolle in IntelliJ verwendet.

Es fragt dann, ob ich ein neues Projekt aus dieser Quelle erstellen möchte, was ich mit Ja beantworte. So weit, so gut. Es wird ein nettes kleines Java-Projekt für mich erstellt, das aus einem einzigen Modul besteht.

Mein Ziel, dieses Projekt in IntelliJ einzubinden, war es jedoch, es in ein Maven-Projekt zu verwandeln. Ich kann nirgendwo eine Option finden, mit der ich dies tun kann!

Gibt es eine Möglichkeit, IntelliJ nur eine einfache leere pom.xml für mich generieren zu lassen, mit einem Namen und einer artifactId und einem Repository? Oder gibt es eine Möglichkeit, das Projekt überhaupt erst als Maven-Projekt zu importieren? (Immer wenn ich versuche, ein Projekt aus vorhandenen Quellen zu erstellen, wird mir nur die Option eines Java-Projekts angeboten).

806voto

Dave Newton Punkte 156303

Klicken Sie mit der rechten Maustaste auf das Modul, wählen Sie "Add framework support..." und aktivieren Sie die "Maven"-Technologie.

enter image description here

enter image description here

(Dadurch wird auch ein pom.xml für Sie zu ändern.)

Wenn Sie das Hinzufügen von Elementen aus dem Quellcode-Repository meinen, müssen Sie das manuell tun - ich bin mir nicht sicher.

Vor IntelliJ 13 wird das Projekt nicht in die Maven Standard Verzeichnis Layout , 13+ wird es.

3 Stimmen

Genau das, wonach ich gesucht habe! Und ja, ich meinte das Hinzufügen des standardmäßigen maven2 "Central" Repository-Elements. Aber ich kann das selbst hinzufügen, keine große Sache.

1 Stimmen

Cool. Aber Sie sollten das nicht hinzufügen müssen; es ist bereits die Standardeinstellung.

56 Stimmen

Was passiert, wenn ich diese Möglichkeit nicht habe?

82voto

kgui Punkte 3859

Ein Anschauungsmaterial für diejenigen, die davon profitieren.

enter image description here

Klicken Sie mit der rechten Maustaste auf den Projektnamen (in diesem Beispiel "test"), wählen Sie "Framework-Unterstützung hinzufügen" und aktivieren Sie die Option "Maven".

37voto

FazoM Punkte 4435
  1. Öffnen Sie "Maven-Projekte" (Registerkarte auf der rechten Seite).
  2. Verwenden Sie 'Maven-Projekte hinzufügen'.
  3. Finden Sie Ihre pom.xml

1 Stimmen

Wenn ich eine übergeordnete Git-URL hatte und viele Unterprojekte, wurden die Unterprojekte nicht als Maven erkannt. Diese Antwort hat geholfen. Um es klar zu machen, ist diese Funktionalität im Maven Tool Window verfügbar.

0 Stimmen

Diese Antwort hat mir geholfen, ein Gradle-Projekt wieder mit Maven zu verknüpfen. Ich musste nur die Verknüpfung aufheben (mit dem Minuszeichen) im entsprechenden Gradle-Menü.

0 Stimmen

Toller Tipp, ich habe Projekte unter das übergeordnete Projekt verschoben und "Add framework support" war für mich nicht verfügbar. Ihre Lösung funktioniert sehr gut.

9voto

Indrajeet Gour Punkte 3262

Befolgen Sie einfach die Schritte:

  1. Klicken Sie mit der rechten Maustaste auf ein beliebiges Modul pox.xml und wählen Sie dann "Als Maven-Projekt hinzufügen".

enter image description here

  1. Um es zu überprüfen, gehen Sie auf die Registerkarte "Maven". Dort sehen Sie das Projekt mit allen Maven-Zielen, die Sie verwenden können:

enter image description here

7voto

Thomas Punkte 1423

Ich möchte den wichtigen Hinweis hinzufügen, dass die Umwandlung eines solchen Projekts Nebenwirkungen haben kann, die sich bei einem größeren Projekt bemerkbar machen. Das liegt daran, dass Intellij Idea (2017) einige wichtige Einstellungen nur aus der pom.xml übernimmt, was dann zu einiger Verwirrung führen kann, zumindest sind folgende Abschnitte betroffen:

  1. Anmerkungseinstellungen werden für die Module geändert
  2. Compiler-Ausgabepfad wird für die Module geändert
  3. Die Ressourceneinstellungen werden vollständig ignoriert und nur aus der pom.xml übernommen
  4. Modul-Abhängigkeiten sind durcheinander und müssen überprüft werden
  5. Sprach-/Kodierungseinstellungen werden für die Module geändert

All diese Punkte müssen überprüft und angepasst werden, aber danach funktioniert es wie geschmiert.

Weiterhin ist leider keine ausreichende pom.xml-Vorlage erstellt worden, ich habe ein Beispiel hinzugefügt, das helfen könnte, die meisten Probleme zu lösen.

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

Bearbeiten 2019:

  • Rekursive Ressourcenprüfung hinzugefügt
  • Verzeichnisangabe hinzugefügt, die wichtig sein könnte, um Verwirrung von IDEA bezüglich der Root-Struktur des Inhalts zu vermeiden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X