source

Java gradle 프로젝트 작성 방법

gigabyte 2023. 2. 1. 21:51
반응형

Java gradle 프로젝트 작성 방법

명령줄에서 Java Gradle 프로젝트를 작성하려면 어떻게 해야 합니까?

아래 그림과 같이 표준 maven 폴더 레이아웃을 생성해야 합니다.

이클립스 플러그인으로 작성된 Java Gradle

갱신:

http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html 에서 파일을 작성해야 합니다.build.gradle 2회선 (2행)

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

. .build.gradle 작업 시 "" "" " " " " " " " " " "gradle create-dirs

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

.3. 3을 gradle eclipse되어 있는 ) (IDE 플러그인에 대응)

그럼 명령어 하나로 할 수 있는 방법이 있을까요?

Java 프로젝트를 작성하려면: 새 프로젝트 디렉토리를 만들고 해당 디렉터리로 이동하여 실행합니다.

gradle init --type java-library

소스 폴더와 그래들 빌드 파일(랩퍼 포함)이 작성됩니다.

gradle 남자들은 우리의 모든 문제를 해결하기 위해 최선을 다하고 있다.그들은 최근에 (1.9 이후) 새로운 기능인 "빌드 초기화" 플러그인을 추가했습니다.

자세한 내용은 빌드 초기화 플러그인 매뉴얼을 참조하십시오.

마지막으로 모든 솔루션을 비교한 결과, 첫 번째 솔루션부터build.gradle파일은 편리합니다.

에는 '그래들 분포'가 있습니다.samples많이 있는 , 예를 들어 있는 폴더, 예를 들어 있는 폴더, 예를 들어 있는 폴더'가 .gradle init --type basic47장을 참조해 주세요. 빌드 초기화 플러그인.하지만 모두 편집이 필요합니다.

아래 템플릿을 사용하여 실행할 수도 있습니다.gradle 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"
}

결과는 다음과 같습니다.

개요

Eclipse Eclipse, Gradle 할 수 .
또는 (Enide) Eclipse용 Gradle, Jetty, Android 대신 Eclipse용 Gradle 통합 지원

편집 상자

유감스럽게도 하나의 명령어로 실행할 수 없습니다.이 기능에 대해서는 미해결의 문제가 있습니다.

현재는 수작업으로 하셔야 합니다.자주 수행해야 하는 경우 사용자 정의 그래들 플러그인을 생성하거나 프로젝트 골격을 준비하여 필요할 때 복사할 수 있습니다.

편집

상기 JIRA 문제는 2013년 5월 1일자로 해결되어 1.7-rc-1로 수정되었다.Build Init Plugin에 대한 설명서는 이 기능이 아직 "삽입" 라이프 사이클에 있음을 나타내지만 사용할 수 있습니다.

이클립스를 사용하는 경우 있음)에 build.gradlefile file)을 할 수 있습니다.gradle eclipse이클립스

모든 종속성을 처리하여 Eclipse의 프로젝트 리소스 경로에도 추가합니다.

나는 그것을 아주 멋진 방법으로 다룰 수 있었다.build.gradleJava, 리소스 및 테스트용 모든 소스 폴더를 만듭니다.그런 다음 먼저 실행되도록 설정했습니다.gradle eclipse작업.

eclipseClasspath.doFirst {
    initSourceFolders()
}

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

이제 하나의 명령으로 새로운 그래들 Java EE 프로젝트를 일식화할 수 있습니다.이 예는 GitHub에 있습니다.

이게 나한테 효과가 있었던 거야gradle로 hello world java 어플리케이션을 만들고 싶었지만, 그 요건은 다음과 같습니다.

  1. 응용 프로그램에 외부 jar 종속성이 있습니다.
  2. 모든 종속 클래스가 항아리에 복사된 실행 가능한 지방 항아리 만들기
  3. 모든 종속 라이브러리가 "dependencies" 디렉터리에 복사된 실행 가능한 jar를 만들고 매니페스트에 클래스 경로를 추가합니다.

해결책은 다음과 같습니다.

  • 최신 gradle 설치(gradle --version 확인. gradle 6.6.1 사용)
  • 폴더를 만들고 터미널을 엽니다.
  • 실행gradle init --type java-application
  • 명령줄에 필요한 데이터 추가
  • 프로젝트를 IDE(IntelliJ 또는 Eclipse)로 Import합니다.
  • 다음 태스크로 build.gradle 파일을 편집합니다.

런너블 지방 항아리

task fatJar(type: Jar) {
 clean
 println("Creating fat jar")
 manifest {
    attributes 'Main-Class': 'com.abc.gradle.hello.App'
 }
 archiveName "${runnableJar}"
 from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
 } with jar
 println("Fat jar is created")
}

복사 의존 관계

task copyDepends(type: Copy) {
   from configurations.default
   into "${dependsDir}"
}

매니페스트에 클래스 경로 종속성이 있는 항아리 만들기

task createJar(type: Jar) {
   println("Cleaning...")
   clean
   manifest {
    attributes('Main-Class': 'com.abc.gradle.hello.App',
            'Class-Path': configurations.default.collect { 'dependencies/' + 
             it.getName() }.join(' ')
    )
}
  from {
      configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  } with jar
  println "${outputJar} created"
}

여기 완전한 빌드.gradle이 있습니다.

plugins {
    id 'java'
   id 'application'
}
repositories {
    mavenCentral()
}
dependencies {
  implementation 'org.slf4j:slf4j-api:1.7.30'
  implementation 'ch.qos.logback:logback-classic:1.2.3'
  implementation 'ch.qos.logback:logback-core:1.2.3'
  testImplementation 'junit:junit:4.13'
}
def outputJar = "${buildDir}/libs/${rootProject.name}.jar"
def dependsDir = "${buildDir}/libs/dependencies/"
def runnableJar = "${rootProject.name}_fat.jar";

//Create runnable fat jar
task fatJar(type: Jar) {
   clean
   println("Creating fat jar")
   manifest {
    attributes 'Main-Class': 'com.abc.gradle.hello.App'
  }
  archiveName "${runnableJar}"
  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
  } with jar
  println("Fat jar is created")
}

//Copy dependent libraries to directory.
task copyDepends(type: Copy) {
 from configurations.default
 into "${dependsDir}"
}

//Create runnable jar with dependencies
task createJar(type: Jar) {
 println("Cleaning...")
 clean
 manifest {
    attributes('Main-Class': 'com.abc.gradle.hello.App',
            'Class-Path': configurations.default.collect { 'dependencies/' + 
            it.getName() }.join(' ')
    )
 }
 from {
     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
 } with jar
  println "${outputJar} created"
}

그라들 빌드 명령어
Fat jar 만들기:gradle fatJar
복사 종속성:gradle copyDepends
종속성이 있는 실행 가능한 jar를 만듭니다.gradle createJar

상세한 것에 대하여는, https://jafarmlp.medium.com/a-simple-java-project-with-gradle-2c323ae0e43d 를 참조해 주세요.

방금 Eclipse Neon.1과 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

여기에 이미지 설명 입력

Java 버전이 설치된 Windows 10의 경우:

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)

그리고 이클립스에서 보듯이 그것은 비참하게 실패했다.하지만 인텔리에서 날아오르는 독수리처럼...Intelij와 일식의 광팬은 모르지만, 일반적인 사람들은 Neon.1을 가장 단순한 사용 사례로 테스트하지 않는다는 것을 의미합니다.그래들 프로젝트를 Import하기 위해서입니다.그건 충분하지 않아요.그라들 프로젝트를 위해 인텔리로 전환합니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/14017364/how-to-create-java-gradle-project

반응형