IntelliJ - Converte um projeto / módulo Java em um projeto / módulo Maven

398

Eu tenho um projeto no Bitbucket. Somente as fontes estão confirmadas. Para recuperar o projeto em uma nova máquina, usei Controle de Versão> Checkout do Controle de Versão no IntelliJ.

Ele então pergunta se eu gostaria de criar um novo projeto a partir dessa fonte, ao qual respondo que sim. Por enquanto, tudo bem. Ele cria um pequeno projeto Java agradável para mim, consistindo em um único módulo.

No entanto, meu objetivo ao inserir este projeto no IntelliJ era transformá-lo em um projeto Maven. Não consigo encontrar nenhuma opção em nenhum lugar que me permita fazer isso!

Existe uma maneira de o IntelliJ gerar um pom.xml vazio básico para mim, com um nome e um artifactId e um repositório? Ou existe uma maneira de importar o projeto como um projeto Maven em primeiro lugar? (Sempre que tento criar um projeto a partir da fonte existente, isso me dá a opção de um projeto Java.)

Neil Traft
fonte

Respostas:

760

Clique com o botão direito do mouse no módulo, selecione "Adicionar suporte à estrutura ..." e verifique a tecnologia "Maven".

(Isso também cria um pom.xmlpara você modificar.)

Se você quer adicionar elementos do repositório de origem, acho que precisa fazer isso manualmente - não tenho certeza.

Antes do IntelliJ 13, isso não converterá o projeto no layout de diretório padrão do Maven ;

Dave Newton
fonte
3
Exatamente o que eu estava procurando! E sim, eu quis dizer adicionar o elemento padrão do repositório maven2 "Central". Mas posso acrescentar isso sozinho, não é grande coisa.
Neil Traft
11
Legal. Mas você não deveria ter que adicionar isso; já é o padrão.
Dave Newton
46
O que acontece se eu não tiver essa opção?
2
quais "plugins"? Eu tenho 2 plugues maven (veio padrão com IntelliJ). Ainda não há opção "Maven" em Add Frameworks
Nick
11
desculpe por reviver este post antigo, mas existe uma maneira automática de colocar as dependências do jsf no pom? O pom é criado, mas está vazio, eu gostaria de ter todas as dependências adequadas de um projeto jsf dentro do pom.
MrSir
76

Um visual para aqueles que se beneficiam dele.

insira a descrição da imagem aqui

Após clicar com o botão direito do mouse no nome do projeto ("teste" neste exemplo), selecione "Adicionar suporte à estrutura" e marque a opção "Maven".

Crt
fonte
Muito obrigado u .....
smack cherry
31
  1. Abra 'Projetos Maven' (guia no lado direito).
  2. Use 'Adicionar projetos Maven'
  3. Encontre seu pom.xml
FazoM
fonte
11
Quando eu tinha uma URL git do diretor pai quando muitos subprojetos, os subprojetos não eram reconhecidos como Maven. Esta resposta ajudou. Para deixar claro, essa funcionalidade está disponível na janela da ferramenta Maven.
Sylvester
Essa resposta me ajudou a associar novamente um projeto Gradle ao Maven. Só é necessário desvinculá-lo (use o sinal de menos) no menu Gradle análogo.
vphilipnyc
6

Quero acrescentar a dica importante de que a conversão de um projeto como esse pode ter efeitos colaterais perceptíveis quando você tem um projeto maior. Isso se deve ao fato de que Intellij Idea (2017) utiliza algumas configurações importantes somente do pom.xml, o que pode levar a algumas confusões, pelo menos as seguintes seções são afetadas:

  1. As configurações de anotação são alteradas para os módulos
  2. O caminho de saída do compilador é alterado para os módulos
  3. As configurações de recursos são totalmente ignoradas e são obtidas apenas do pom.xml
  4. As dependências do módulo estão desarrumadas e precisam ser verificadas
  5. As configurações de idioma / codificação são alteradas para os módulos

Todos esses pontos precisam ser revisados ​​e ajustados, mas depois disso funciona como um encanto.

Mais ainda, infelizmente, não há um modelo pom.xml suficiente criado, adicionei um exemplo que pode ajudar a resolver a maioria dos 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:

  • Adicionada verificação de recurso recursivo
  • Adicionado especificação de diretório que pode ser importante para evitar confusão da IDEA em relação à estrutura raiz do conteúdo
Thomas
fonte
3

Eu tinha um cenário diferente, mas ainda assim pousei nessa resposta.
Eu havia importado minha pasta de projeto raiz contendo vários projetos do Maven, mas também algumas outras coisas usadas neste projeto.
O IntelliJ reconheceu os arquivos Java, mas não resolveu as dependências do Maven.

Corrigi isso executando um clique com o botão direito do mouse em cada pom e depois em "Add as maven project"

John Blackwell
fonte
3

Resolvi esse mesmo problema seguindo as etapas abaixo:

  1. Arquivo> Fechar projeto

  2. Projeto de Importação

  3. Selecione seu projeto através do pop-up de arquivo do sistema

  4. Marque o botão de opção "Importar projeto do modelo externo" e selecione a entrada Maven

  5. E alguns botões Avançar (selecione JDK, ...)

Em seguida, o projeto será importado como módulo Maven.

Walid Ammou
fonte
2

Isso foi corrigido para mim: abra a guia Projetos do Maven à direita. Adicione o pom se ainda não estiver presente e clique em atualizar no canto superior esquerdo da guia.

ZoltanT
fonte
0

A maneira mais fácil é adicionar o projeto como um projeto Maven diretamente. Para fazer isso, no explorador de projetos à esquerda, clique com o botão direito do mouse no arquivo POM do projeto, na parte inferior do menu de contexto, você verá uma opção chamada 'Adicionar como projeto Maven', clique nela. Isso converterá automaticamente o projeto em um projeto Maven

Testilla
fonte