【问题标题】:publish pre-built jars to nexus repo using gradle使用 gradle 将预构建的 jars 发布到 nexus repo
【发布时间】:2022-08-21 07:30:16
【问题描述】:

我正在尝试将混淆的 jar 发布到 nexus repo。

我创建了一个使用 proguard 来混淆代码的任务,然后是一个将混淆的 jar 复制到构建文件夹中的任务。

task proguard (type: proguard.gradle.ProGuardTask) {
       println("Performing Obfuscation ..")
       configuration 'proguard.conf'

      subprojects { porject ->
        injars "${projectDir}/build/libs/${porject.name}-${rootProject.version}.jar"
        outjars "${projectDir}/build/libs/obfuscated/${porject.name}-${rootProject.version}.jar"
      }

     libraryjars "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar"
}

task postProguard (){
  doFirst{
    println("Deleting Non Obfuscated jars")
         subprojects { project ->
           delete "${projectDir}/build/libs/${project.name}-${rootProject.version}.jar"
         }

         println("Copying Obfuscated Jars")

          subprojects { project ->
          copy {
            from "${projectDir}/build/libs/obfuscated/"
            into "${projectDir}/build/libs/"
            include '*.jar'
          }
    }
  }
}
proguard.finalizedBy postProguard

问题是当我跑步时./gradlew 发布项目重新构建,罐子再次更改为非混淆。

我试图更改发布任务但没有结果。

  publishing {
    if(new File("${projectDir}/build/libs/obfuscated").exists()){
       publications {
         maven(MavenPublication) {
              artifact "${projectDir}/build/libs/${project.name}-${rootProject.version}.jar"
       pom.withXml {
            def dependency = asNode().appendNode('dependencies').appendNode('dependency')
            dependency.appendNode("groupId", "${project.name}")
            dependency.appendNode("artifactId", "${project.name}")
            dependency.appendNode("version", "${rootProject.version}")
        }
       }
      }
     }
    repositories {
      maven {
        name = 'maven-snapshots'
        url = ***
  
      }
    }
  }

【问题讨论】:

    标签: gradle proguard maven-publish


    【解决方案1】:

    我在出版物中添加了一个 builtBy 属性,这是一个工作代码

    publications {
           if(new File("${projectDir}/build/libs/obfuscated").exists()){
             maven(MavenPublication) {
                  artifact ("${projectDir}/build/libs/${project.name}-${rootProject.version}.jar"){
                    builtBy postProguard
                  }
              }
            }
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 2016-03-28
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      相关资源
      最近更新 更多