Como criar um projeto Java gradle


120

Como criar um projeto Java Gradle a partir da linha de comando?

Ele deve criar um layout de pasta padrão, como na figura abaixo.

Java Gradle criado com o plug-in Eclipse

ATUALIZAR:

.1 Em http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html , preciso criar um arquivo build.gradlecom 2 linhas

apply plugin: 'java'
apply plugin: 'eclipse'

.2. Adicione à build.gradletarefa abaixo e executegradle create-dirs

task "create-dirs" << {
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

.3 Em seguida, execute gradle eclipse(ou a string correspondente a outro plug-in IDE configurado)

Então, existe uma maneira de fazer isso em um comando?


1
Alguém sabe o equivalente ao IntelliJ java project skeleton?
Beezer

Acho que a resposta é flagrantemente acima ...._ ou string correspondente a outra IDE plug-in configured_: =)
Beezer

Respostas:


283

Para criar um projeto Java: crie um novo diretório de projeto, pule para ele e execute

gradle init --type java-library

Pastas de origem e um arquivo de compilação Gradle (incluindo um wrapper) serão compilados.


8
Como mencionado em outras respostas, a documentação no plug-in build init pode ser encontrada aqui: gradle.org/docs/current/userguide/build_init_plugin.html
Paul

é muito bom. @ Mike No eclipse, antes de fazer isso, o projeto java deve ser convertido no projeto gradle. Então, como posso definir as pastas de origem automaticamente?
verystrongjoe

Uma coisa importante. Você deve ter a versão Gradle com o plugin init incluído. Demorei muito tempo para descobrir o que havia de errado com meu aluno.
Юрій Мазуревич

6
Usemkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier 23/08/16

1
gradle wrapper --gradle-version 4.1 init --type java-librarySe você quiser especificar a versão invólucro
DeFreitas

19

O pessoal da gradle está fazendo o possível para resolver todos os problemas ;-). Eles recentemente (desde 1.9) adicionaram um novo recurso (incubação): o plug-in "build init".

Consulte: documentação do plug-in init


13

Infelizmente você não pode fazer isso em um comando. Há um problema em aberto para o próprio recurso .

Atualmente, você terá que fazer isso manualmente. Se você precisar fazer isso com frequência, poderá criar um plugin de gradle personalizado ou apenas preparar seu próprio esqueleto do projeto e copiá-lo quando necessário.

EDITAR

O problema do JIRA mencionado acima foi resolvido em 1 de maio de 2013 e corrigido em 1.7-rc-1. A documentação no plug - in Build Init está disponível, embora indique que esse recurso ainda está no ciclo de vida da "incubação".


12

Finalmente, depois de comparar todas as soluções, acho que começar do build.gradlearquivo pode ser conveniente.

A distribuição Gradle possui uma samplespasta com muitos exemplos e há um gradle init --type basiccomando no Capítulo 47. Build Init Plugin . Mas todos eles precisam de alguma edição.

Você também pode usar o modelo abaixo e executargradle initSourceFolders eclipse

/*
* Nodeclipse/Enide build.gradle template for basic Java project
*   https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.enide.editors.gradle/docs/java/basic/build.gradle
* Initially asked on
*   http://stackoverflow.com/questions/14017364/how-to-create-java-gradle-project
* Usage
*   1. create folder (or general Eclipse project) and put this file inside
*   2. run `gradle initSourceFolders eclipse` or `gradle initSourceFolders idea`
* @author Paul Verest; 
* based on `gradle init --type basic`, that does not create source folders 
*/

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

task initSourceFolders { // add << before { to prevent executing during configuration phase
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

// In this section you declare where to find the dependencies of your project
repositories {
    // Use Maven Central for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    //compile fileTree(dir: 'libs', include: '*.jar')
    // The production code uses the SLF4J logging API at compile time
    //compile 'org.slf4j:slf4j-api:1.7.5'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile "junit:junit:4.11"
}

O resultado é como abaixo.

Visão geral

Isso pode ser usado sem nenhum plug-in Gradle para Eclipse
ou com (Enide) Gradle para Eclipse, Jetty, alternativa para Android para Gradle Integration for Eclipse

caixa de edição


1

Se você estiver usando o Eclipse, para um projeto existente (que possui um build.gradlearquivo), basta digitar o gradle eclipseque criará todos os arquivos e pastas do Eclipse para este projeto.

Ele cuida de todas as dependências para você e as adiciona ao caminho do recurso do projeto no Eclipse.


2
Isso não cria pastas de origem. Se eles não foram criados antes, as configurações do Eclipse não estarão cheias. No entanto, muito obrigado, adicionado como etapa .3
Paul Verest

1

Eu poderia lidar com isso usando um método groovy build.gradlepara criar todas as pastas de origem para java, recursos e teste. Então eu o configurei para executar antes da gradle eclipsetarefa.

eclipseClasspath.doFirst {
    initSourceFolders()
}

def initSourceFolders() {
    sourceSets*.java.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

Agora podemos configurar um novo projeto Java EE gradle para eclipsar com apenas um comando. Eu coloquei este exemplo no GitHub


-2

Eu apenas tentei com o Eclipse Neon.1 e Gradle:

------------------------------------------------------------
Gradle 3.2.1
------------------------------------------------------------

Build time:   2016-11-22 15:19:54 UTC
Revision:     83b485b914fd4f335ad0e66af9d14aad458d2cc5

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_112 (Oracle Corporation 25.112-b15)
OS:           Windows 10 10.0 amd64

insira a descrição da imagem aqui

No Windows 10 com versão Java:

C:\FDriveKambiz\repo\gradle-gen-project>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

E falhou miseravelmente, como você pode ver no Eclipse. Mas naveguei como uma águia em alta no Intellij ... Eu não conheço o Intellij e um grande fã de eclipse, mas caras comuns, isso significa NINGUÉM testar Neon.1 para os casos de uso mais simples ... para importar um projeto gradle. Isso não é bom o suficiente. Estou mudando para Intellij para projetos gradle:

insira a descrição da imagem aqui


1
A pergunta foi: Como criar um projeto Java Gradle a partir da linha de comando?
Paul Verest

Qual é o problema de ser útil nesse contexto, Paulo? Está no mesmo contexto. Portanto, por que não mostrar que o eclipse atualmente tem um problema ao importá-lo?
Beezer
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.