2016-09-29 2 views
0

jar 파일에 서명해야합니다. 내가했던 그 플러그인 "서명"을 적용하고 추가 블록 기호 아래와 같이 : 나는 (testJar.jar PGP 키를 추가하고 항아리에 서명 할 수 있어요하지만이는 .asc와 jar 파일 외부에 서명 한 끝에Gradle에서 jar 파일에 서명하는 방법

apply plugin: 'signing' 
signing { 
required { gradle.taskGraph.hasTask("makeService") } 
sign configurations.archives 
} 

.asc).

그러나 나는 이것을 maven에서했는데, 모든 클래스 정보에 서명하고 sign-file을 meta-inf 디렉토리에 넣습니다.

Gradle에 로그인하는 방법이 있습니까?

Google 검색 및 포럼에서 정보를 얻을 수 없어 도움을주십시오.

+0

이 작업을 수행하는 데 필요한 선언적 방법이 있습니까? – Novaterata

답변

0

ASC는 게시를 위해 디지털 서명에 사용됩니다.

하지만이 처음에서 서명 된 JAR

필요 콘솔에서이 작업을 수행 :

1) 암호로 개인 키

keytool -genkey -alias test_app_alias -validity 3650 -keystore test_app_sign.jks 

만들기 사용 password123

2) 개인 키를 사용하여 JAR에 서명하십시오.

jarsigner -keystore test_app_sign.jks -storepass password123 -keypass password123 build/libs/<name>.jar test_app_alias 

3) 결과 파일을보고 모든 것이 올바르게 수행되었는지 확인하십시오. 또는 명령을 실행하십시오.

jarsigner -verify build/libs/<name>.jar 

코드를 build.gradle에 추가하십시오. 예를 들어 :

jar << { 
    def passwd = "password123" 
    def app_alias = "test_app_alias" 
    def jks_file = "test_app_sign.jks" 

    def exec_line = "jarsigner -keystore " + jks_file + " -storepass " + 
     passwd + " -keypass "+ passwd + " " + jar.archivePath + " " + app_alias 
    print exec_line 
    exec_line.execute() 
} 
0
//Signing 
    // def jarsignerskip = false 
    def keystoreFile = new File('urkeystore.jks') 
    def keystorepass = '[email protected]@S' 
    def keyalias = 'selfSigned' 

    task signJar(dependsOn: 'jar',description: 'to Sign JAR.',group: 'Build'){ 

    doLast{ 
     println ":$project.name:${name}" 
     def signdir = new File("$buildDir/jars/signed") 
     signdir.mkdirs() 
     ant.signjar(
     destDir: "${signdir.absolutePath}", 
        jar: 'build/jars/*.jar', 
        alias:keyalias, 
        storetype:"jks", 
        keystore:"${keystoreFile.absolutePath}", 
        storepass:keystorepass, 
        verbose:true, 
        preservelastmodified:"true" 
    ) 
    } 

    } 

그것은 나를 위해 작동합니다.

관련 문제