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.