>source

저는 gradle 초보자이며 도움이 필요합니다. 내 자신의 libs와 extern libs (공급 업체)를 원하는 경우이 libs (extern 및 personnal)를 넣을 수 있습니까? 도와 주셔서 감사합니다 !

(예 : 현재 디렉토리 구조의 스크린 샷)

  • 답변 # 1

    Gradle은 이에 대한 몇 가지 다른 옵션을 제공합니다.

    모든 경우에 로컬 파일 종속성에 대한 고정 폴더 구조가 없으며 원하는 것을 자유롭게 선택할 수 있습니다. libs 나에게 괜찮아 보인다.

    아래의 모든 예는 Groovy DSL에 있습니다. Kotlin DSL 변형에 대한 가이드 가이드를 참조하세요.

    파일 종속성

    로컬 폴더에서 종속성을 추가하려면 Project.file () 또는 Project.fileTree () 메서드를 사용할 수 있습니다. 둘 다 프로젝트 디렉토리에 상대적인 경로를 사용합니다.

    dependencies {
        implementation files('libs/a.jar')                  // Single file
        implementation files('libs/b.jar', 'libs/c.jar')    // Multiple files
        implementation fileTree('libs')                     // All files in a folder
        implementation fileTree('libs') { include '*.jar' } // All jar files in a folder
    }
    
    

    자세한 내용은 사용 설명서에서 파일 종속성을 참조하십시오.

    플랫 디렉토리 저장소

    플랫 디렉토리 저장소를 선언 할 수도 있습니다. 여기서 경로는 Gradle을 호출하는 위치에 상대적이므로 일관성을 유지하려면 절대적으로 만들어야합니다 (사용 projectDir 또는 rootDir ).

    repositories {
        flatDir name: 'local-libs', dirs: "$projectDir/libs" // The name is optional
    }
    
    

    그런 다음 그룹, 이름 및 버전과 함께 일반 형식을 사용하여 종속성을 선언 할 수 있습니다. 그러나 그룹은 무시되므로 원하는 것을 작성하거나 그냥 생략 할 수 있습니다.

    dependencies {
        implementation 'mysql:mysql-connector-java:5.1.49' // Real Maven coordinates
        implementation ':mysql-connector-java:5.1.49'      // Short-hand for local coordinates
    }
    
    

    자세한 내용은이 섹션을 참조하십시오.

    Maven 저장소 및 별도의 Gradle 프로젝트

    위의 두 가지 방법은 모듈 메타 데이터를 포함하지 않기 때문에 모든 전이 종속성을 수동으로 정의하고 포함해야하기 때문에 유지 관리가 빠르게 어려워 질 수 있습니다.

    가능하다면 Maven 저장소를 사용해보세요. 특히 타사 종속성의 경우. 메타 데이터 파일을 활용하기 위해 로컬 저장소를 정의 할 수도 있습니다 (예 : .pom 파일 또는 .module ) Maven Central 또는 JCenter와 같은 원격 장치를 사용할 수없는 경우.

    다른 Gradle 프로젝트에 의존하는 경우 관련이 있다면 빌드하여 "libs"폴더에 넣는 대신 다중 프로젝트로 구조화 할 수 있습니다.

    관련이없는 경우 Maven 저장소 (로컬 또는 원격)에 게시하거나 복합 빌드를 살펴볼 수도 있지만 이는 약간의 고급 주제입니다.

    MySQL Connector 소프트웨어 라이선스에 대한 참고 사항

    마지막으로, 모르는 경우를 대비하여 MySQL Connector/J 버전 5.x의 커뮤니티 에디션은 GPL v2에 따라 라이센스가 부여됩니다. 귀하의 애플리케이션도 GPL v2에 따라 라이선스를 받아야 함을 의미합니다.

    8.x와 같은 최신 버전 (6과 7에 대해 잘 모르겠습니다)은 GPL v2에 따라 이중 라이센스가 부여되었지만 다음과 같은 조항이 있습니다.범용 FOSS 예외이를 통해 자신의 라이센스에 영향을주지 않고 자신의 응용 프로그램에서 라이브러리를 연결하고 사용할 수 있습니다.

    이것이 취미 프로젝트라면 라이센스를 위반하면 아무도 당신의 문에 알지 못할 것입니다. 그러나 회사를위한 것이라면 조심하지 않으면 법적 문제를 일으킬 수 있습니다. 오라클은 수시로 감사를 수행하며 큰 라이센스 비용으로 당신을 때릴 기회를 놓치는 것으로 알려져 있지 않습니다.

  • 이전 ggplot2 - R에서 서로 다른 클래스의 플롯 결합
  • 다음 vue.js - Vue typescript 재귀 구성 요소