2017-12-19 38 views
0

종속성. 그러나 종속성을 원격 저장소 (아이비 또는 메이븐)로 푸시하고 거기에서 사용하려면, gradle은 항상 항아리에 버전 접미사를 추가합니다.버전없는 Gradle을가

dependencies { 
    compile group: 'org.company', name: 'something', version: '1.0' 
} 

결과는 something-1.0.jar입니다. something-.jar에서

에도이

dependencies { 
    compile group: 'org.company', name: 'something' 
} 

결과 (대시를 참고).

어쨌든 저장소 종속성에 버전이 존재하지 않도록 할 수 있습니까?

+0

을 받아 들일 수 있다는 것입니다 할 수 있습니다. 항아리에 대한 버그 수정이 릴리스 된 것을 상상해보십시오. 어떻게 항아리와 항아리를 구별 할 수 있습니까? (스포일러 알림 : 버전 번호입니다!) –

+0

@ lance-java 타사 엔터프라이즈 급 라이브러리입니다. 저장소에서 라이브러리를 버전 관리하는 것이 좋습니다. 저장소에서 파일 이름을 확인한 후 (클래스 경로에서) 버전 번호를 원하지 않습니다. –

+0

좋아, 대답을 추가합니다. –

답변

1

당신이 말했듯이, 이슈에 저장소에 버전을 제공하는 것은 괜찮습니다. 응용 프로그램의 jar 파일에 버전이 필요하지 않습니다. 당신은

configurations { 
    something { transitive = false } 
} 
dependencies { 
    something 'org.company:something:1.0' 
    something 'org.company:something-else:1.0' 
    compile files(tasks['dummyTask']) 
    compile 'org.foo:some-normal-dep:1.1' 
} 
task copySomething(type:Copy) { 
    from configurations.something 
    into "$buildDir/something" 
    rename '(.+)-.+?\\.jar', '$1.jar' 
} 
task dummyTask { 
    dependsOn copySomething 
    inputs.dir "$buildDir/something" 
    outputs.files fileTree("$buildDir/something") 
} 

이의 주요 원동력이 Project.files(...) 그것은 유물 (항아리) 게이트웨이 AV (그룹/아티팩트/버전)에 의해 고유하게 식별 할 수있는 저장소의 아주 기본적인 개념의 Task

+0

거의 같습니다. 파일이 복사되고 이름이 바뀌었지만, 어떤 이유로 복사 작업 출력 디렉토리가 마치 종속성 인 것처럼 처리됩니다. ListJars는 "something.jar"대신 "something"을 출력합니다. –

+0

'Project.copy (...)'와 커스터마이징 된 태스크 입력/출력을 사용하도록 업데이트되었습니다. –

+0

이것은 하드 코딩 된 something.jar 파일에서 작동하는 것 같습니다. 'configurations.something'에 여러 개의 파일이 있고'rename '-1.0', '''과 같은 것을하고 싶다면? 나는'outputs.files configurations.something.getFiles() (and rename)'과 같은 것을 할 수 있다고 생각했으나, 그 시점에서 configurations.something.getFiles는 비어있는 것으로 보인다. –

0

메이븐 저장소는 모든 것을 요구 (내 동기는 단지, 내가 자식의 repo에 그것을 가지고 싶지 않아하지만 나는 또한 그것의 이름은 변경하지 않습니다. 제 3 자 항아리 때문이다) 유물에는 버전이 있습니다. 내가가는 방법은 이슈를 다운로드하는 동안 또는 후에 버전 번호를 제거하는 것입니다. Maven에는 전쟁이나 귀를 만들 때 버전 번호를 삭제할 수있는 옵션이 있습니다. Gradle에는 비슷한 항목이있는 것 같습니다.