IntelliJ - Convierta un proyecto / módulo Java en un proyecto / módulo Maven

398

Tengo un proyecto en Bitbucket. Solo las fuentes están comprometidas. Para recuperar el proyecto en una nueva máquina, utilicé Control de versiones> Pagar desde Control de versiones desde IntelliJ.

Luego me pregunta si me gustaría crear un nuevo proyecto a partir de esta fuente, a lo que respondo que sí. Hasta aquí todo bien. Crea un pequeño y agradable proyecto Java para mí, que consta de un solo módulo.

Sin embargo, mi objetivo al llevar este proyecto a IntelliJ era convertirlo en un proyecto Maven. ¡No puedo encontrar ninguna opción en ningún lugar que me permita hacer esto!

¿Hay alguna manera de que IntelliJ solo genere un pom.xml vacío básico para mí, con un nombre y un artifactId y un repositorio? O, ¿hay alguna manera de importar el proyecto como un proyecto Maven en primer lugar? (Cada vez que intento crear un proyecto a partir de una fuente existente, solo me da la opción de un proyecto Java).

Neil Traft
fuente

Respuestas:

760

Haga clic derecho en el módulo, seleccione "Agregar soporte de marco ...", y marque la tecnología "Maven".

(Esto también crea una pom.xmlpara que usted pueda modificar).

Si te refieres a agregar elementos de repositorio de origen, creo que debes hacerlo manualmente, no estoy seguro.

Pre-IntelliJ 13 esto no convertirá el proyecto al diseño de directorio estándar de Maven , 13+ lo hará.

Dave Newton
fuente
3
¡Exactamente lo que estaba buscando! Y sí, me refería a agregar el elemento de repositorio "Central" maven2 predeterminado. Pero puedo agregar eso yo mismo, no es gran cosa.
Neil Traft
1
Frio. Pero no debería tener que agregar eso; Ya es el valor predeterminado.
Dave Newton el
46
¿Qué pasa si no tengo esa opción?
2
¿Qué "complementos"? Tengo 2 enchufes maven (vino por defecto con IntelliJ). Todavía no hay opción "Maven" en Agregar marcos
Nick
1
perdón por revivir esta publicación anterior, pero ¿hay alguna forma automática de poner las dependencias jsf en el pom? El pom se crea pero está vacío, me gustaría tener todas las dependencias adecuadas de un proyecto jsf dentro del pom.
MrSir
76

Un visual para aquellos que se benefician de ello.

ingrese la descripción de la imagen aquí

Después de hacer clic con el botón derecho en el nombre del proyecto ("prueba" en este ejemplo), seleccione "Agregar soporte de marco" y marque la opción "Maven".

Crt
fuente
Muchas gracias .....
justo
31
  1. Abra 'Proyectos Maven' (pestaña en el lado derecho).
  2. Use 'Agregar proyectos Maven'
  3. Encuentra tu pom.xml
FazoM
fuente
1
Cuando tenía un URL de git de director principal cuando muchos subproyectos, los subproyectos no eran reconocidos como Maven. Esta respuesta ayudó. Para que quede claro, esta funcionalidad está disponible en la ventana de herramientas de Maven.
Sylvester
Esta respuesta me ayudó a volver a asociar un proyecto Gradle a Maven. Solo necesitaba desvincularlo (use el signo menos) en el menú análogo de Gradle.
vphilipnyc
6

Quiero agregar la pista importante de que convertir un proyecto como este puede tener efectos secundarios que se notan cuando tienes un proyecto más grande. Esto se debe al hecho de que Intellij Idea (2017) toma algunas configuraciones importantes solo del pom.xml, lo que puede generar cierta confusión, al menos las siguientes secciones se ven afectadas:

  1. La configuración de anotación se cambia para los módulos
  2. La ruta de salida del compilador se cambia para los módulos
  3. La configuración de recursos se ignora totalmente y solo se toma de pom.xml
  4. Las dependencias de los módulos están en mal estado y deben verificarse
  5. La configuración de idioma / codificación se cambia para los módulos

Todos estos puntos necesitan revisión y ajuste, pero después de esto funciona a las mil maravillas.

Además, desafortunadamente no se ha creado una plantilla pom.xml suficiente, he agregado un ejemplo que podría ayudar a resolver la mayoría de los problemas.

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

Editar 2019:

  • Análisis de recursos recursivos agregado
  • Se agregó una especificación de directorio que podría ser importante para evitar la confusión de IDEA al volver a descartar la estructura raíz del contenido
Thomas
fuente
3

Tuve un escenario diferente, pero aún así obtuve esta respuesta.
Importé mi carpeta de proyecto raíz que contiene varios proyectos de Maven, pero también algunas otras cosas utilizadas en este proyecto.
IntelliJ reconoció los archivos Java, pero no resolvió las dependencias de Maven.

Lo arreglé haciendo un clic derecho en cada pom y luego "Agregar como proyecto experto"

John Blackwell
fuente
3

He resuelto este mismo problema siguiendo los pasos a continuación:

  1. Archivo> Cerrar proyecto

  2. Proyecto de importación

  3. Seleccione su proyecto a través de la ventana emergente del archivo del sistema

  4. Marque el botón de opción "Importar proyecto desde modelo externo" y seleccione la entrada de Maven

  5. Y algunos botones Siguiente (seleccione JDK, ...)

Luego, el proyecto se importará como módulo Maven.

Walid Ammou
fuente
2

Esto lo arregló para mí: abra la pestaña de proyectos maven a la derecha. Agregue el pom si aún no está presente, luego haga clic en actualizar en la parte superior izquierda de la pestaña.

ZoltanT
fuente
0

La forma más fácil es agregar el proyecto como un proyecto Maven directamente. Para hacer esto, en el explorador de proyectos a la izquierda, haga clic derecho en el archivo POM para el proyecto, hacia la parte inferior del menú contextual, verá una opción llamada 'Agregar como proyecto Maven', haga clic en él. Esto convertirá automáticamente el proyecto en un proyecto Maven

Testilla
fuente