Melhor maneira de adicionar suporte Gradle ao projeto IntelliJ


168

Procurei um pouco e não encontrei a melhor solução para converter um projeto IntelliJ existente em Gradle. Trabalho em um ambiente de equipe e atualmente compartilhamos o arquivo .ipr, pois temos algumas configurações de compilação que rastreamos. Acabaremos nos livrando daqueles a favor de Gradle, mas não posso estragar muito as coisas até que a conversão de Gradle esteja concluída.

Além disso, nossos arquivos de origem Java estão localizados na raiz do diretório src, em vez de src / main / java, como padrão.

Existe uma maneira de adicionar Gradle ao meu projeto que não me faça excluir e recriar meu projeto IntelliJ e que não estrague todos os outros quando fizerem um pull do Git?


2
Para responder à pergunta do seu diretório de origem - você precisa substituir o diretório de origem padrão por sourceSets . Veja como fizemos isso no driver Java do MongoDB: github.com/mongodb/mongo-java-driver/blob/…
— Trisha

Respostas:


208

Adicionar:

build.gradle 

na sua pasta raiz do projeto e use o plug-in, por exemplo:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

e com este fogo da linha de comando:

gradle cleanIdea 

e depois disso:

gradle idea

Depois que tudo deve funcionar


7
ao tentar esta solução fez alguém se deparar com o erro "Módulo 'xx' não é apoiada por Gradle se assim como foi resolvido?
— Marquis Blount

Obrigado, isso estava me deixando louco e eu não conseguia descobrir como fazer o IntelliJ atualizar as dependências do projeto depois de adicioná-lo ao build.gradle.
— Amala

A ideia gradle (que depende de ideaProject, ideaModule, ideaWorkspace) não funcionou para mim, pois o ideaModule continuava falhando. Em vez disso, a tarefa gradle ideaProject funcionou bem e o projeto agora está ativado para Gradle.
— paranza

Tudo bem, há um problema com essa abordagem. Você receberá um erro "dependências não podem ser aplicadas ao groovy.lang.closure". Confira esta solução em vez disso: stackoverflow.com/a/17168175/2517730
— Yar

1
Isto é um pouco desatualizado, pois a idéia Gradle plugins ainda recorre ao projeto idéia baseado em arquivo, enquanto o projeto baseado em pasta é padrão e muito mais útil
— Xerus

74

Não há necessidade de remover nenhum .imlarquivo. Siga isso:

  • fechar o projeto
  • File -> Open... e escolha o seu recém-criado build.gradle
  • O IntelliJ perguntará se você deseja:
    • Open Existing Project
    • Delete Existing Project and Import
  • Escolha a segunda opção e pronto

Como posso resolver o problema, que o novo projeto precisa estar em outra pasta?
— Barracuda317

Isso adiciona os JARs da sua estrutura de projeto | Bibliotecas como dependências e crie um EAR (usando o plug-in) conforme definido em Estrutura do Projeto | Artefatos?
— NOTiFY

@NOTiFY Duvido que sim. É equivalente a verificar o projeto do zero.
— Michal Kordas

@Michal Kordas Adicionei todas as dependências manualmente, não demorei nem perto do tempo esperado e agora adiciono a criação WAR, JAR & EAR. Há uma solicitação de recurso para isso no JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990 #
— NOTiFY

46

Outra maneira, mais simples.

Adicione o seu

build.gradle

arquivo para a raiz do seu projeto. Feche o projeto. Remova manualmente o arquivo * .iml. Em seguida, escolha "Importar projeto ...", navegue até o diretório do projeto, selecione o arquivo build.gradle e clique em OK.


21

No IntelliJ 2017.2.4, fechei o projeto e o reabri e recebi uma caixa de diálogo perguntando se eu queria vincular ao build.gradle que abriu a caixa de diálogo de importação para projetos Gradle.

Não há necessidade de excluir quaisquer arquivos ou adicione a ideia de plugin para build.gradle .


2
Pode confirmar que isso funciona bem. Basta executar o gradle init na raiz do projeto e você verá a caixa de diálogo na próxima vez que abrir o projeto.
— Alex H.

16

Como referência futura, se você já possui um Mavenprojeto, tudo o que você precisa fazer é fazer um gradle initno diretório do projeto, o que irá gerar build.gradlee outras dependências, e faça gradle buildno mesmo diretório.


2
De interesse: Criando novas construções do Gradle - Notas: gradle initpode gerar vários tipos diferentes de projetos e até sabe como converter pom.xmlarquivos simples para o Gradle.
— Guy Coder

7

Estou usando a versão 12 do IntelliJ.

Resolvi um problema semelhante criando um projeto totalmente novo e "Fazendo check-out do controle de versão" A fusão dos dois projetos posteriormente foi bastante fácil.


1
  1. Adicione build.gradleno diretório raiz do seu projeto.

  2. Então apenas File->Invalidate Caches / Restart

Aqui está um build.gradle básico para projetos Java:

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.