2015-01-14 2 views
-1

MANIFEST 파일을 Gradle로 유지하는 jar 파일로 클래스 파일을 대체 할 수 있습니까? 클래스 파일 만 제공하는 공급 업체의 패치를 적용하려면이 작업을 수행해야합니다.gradle이 클래스 파일을 MANIFEST를 수정하도록 대체합니다.

작업 applayPatch :

이드이 시도 (유형 : 항아리) {

destinationDir = new File("${rootProject.projectDir}/libs/tool") 
archiveName = "myfile.jar" 

from(zipTree("${rootProject.projectDir}/libs/myfile.jar")) { 
    exclude "com/tool/frontoffice/partymanager/partysearch/DynamicPartySearchWidget.class" 
} 

from ("${rootProject.projectDir}/point-release/FFO-33758/com/fineos/frontoffice/partymanager/partysearch") { 
    include "MyClass.class" 


} 

}

하지만 빈 MANIFEST 만 MyClass 클래스로 나에게 용기를주는 일을하지 않았다 .class

답변

0

Gradle에서 새 매니 페스트를 생성하지 않으려면 Jar 대신 Zip 대신에 작업을 사용해보세요. 기본적으로이 build/distributions의 결과로 항아리를두고 있음을

task patchedJar(type: Zip, dependsOn: jar) { 
    extension 'jar' 
    from(zipTree(jar.archivePath)) { 
     exclude '**/MyClass.class' 
    } 
    from("patches/dir") { 
     include 'com/foo/package/MyClass.class' 
    } 
} 

를 적어 둡니다. 출력을 다른 곳에서 원하면 destinationDir 속성을 변경하기 만하면됩니다.

관련 문제