2016-08-15 3 views
1

지금 Project-A에서 개발 중이며, 일부 부품을 아웃소싱한다는 것은이 물건을 재사용 할 수 있기 때문에 마음에 듭니다. 나는 이제 gradle (Project-B)를 사용하여 새 프로젝트를 만들고이 재사용 가능한 모든 소스를 Project-A에 종속성으로 다시 포함 시키려고 생각하고 있습니다.gradle을 사용하여 재사용 가능한 소스의 Jar-Library를 만드는 방법은 무엇입니까?

나는 gradle-build-files에 대한 기초 지식이 있으므로 내 질문은 build.gradle 파일의 기본 단계가 무엇인지 알아야합니다.

+0

프로젝트 B에서 항아리를 생성하고 메이븐 저장소에 게시합니다. jar을 생성하는 것은 gradle의 기본 설정이며, 게시물 (실제로는 두 개)이있어 인위적인 내용을 저장소에 게시 할 수 있습니다. Maven 저장소에서 다른 라이브러리를 사용하기 때문에 A에서 B를 사용합니다. –

답변

1

필자의 최선의 방법은 Project-B를 로컬 Maven 저장소 (파일 시스템의 디렉토리)에 라이브러리로 게시하는 것입니다. 물론 원하는 경우 공개 저장소에 게시 할 수도 있습니다.

/path/to/repo에 그러한 로컬 저장소를 생성한다고 가정하면 다음과 같이 할 수 있습니다.

프로젝트-B의 경우

gradle.properties 정의 일부 변수에서

: 당신의 settings.gradle에서

pName=your-project-name 
pGroup=your-group-name 
pVersion=1.0.0 

이 프로젝트 이름 설정 : 당신의 build.gradle에서

rootProject.name = pName 

을 받는다는 플러그인을 적용 :

apply plugin: 'maven' 
들어

gradle clean uploadArchives 

를 사용

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: file://localhost/path/to/repo) 
     } 
    } 
} 

당신은 다음 저장소에 프로젝트를 업로드 할 수 있습니다 : 또한

group = pGroup 
version = pVersion 

는, 업로드 작업을 정의 :

은 다른 파일에서이 변수를 설정 프로젝트 -A

로컬 r 추가

repositories { 
    maven { 
     url /path/to/repo 
    } 
    mavenCentral() 
} 

이 그런 다음 프로젝트-B에 종속성을 추가 : 받는다는 저장소의 목록에 epository, 그것 뿐이다

dependencies { 
    compile 'your-group-name:your-project-name:1.0.0' 
} 

작업을 실행할 때 자동으로 프로젝트-B의 jar 파일을 끌어한다 프로젝트-A 그런 당신이 프로젝트-B의 소스를 원하는 경우

가 선택적으로 소스를

을 게시 gradle build 또는 gradle eclipse는 m에 포함 당신의 IDE가 라이브러리의 소스 코드를 표시 할 수 있도록 아웬 저장소, 당신의 build.gradle이 추가 :

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourcesJar 
} 
관련 문제