精华内容
下载资源
问答
  • gradle打包

    2021-01-25 17:04:41
    文章目录gradle打包gradle.properties文件app的build.gradle文件注释0注释1注释2注释3注释4注释5查看task执行依赖结果 gradle打包 gradle.properties文件 buildType=Release app的build.gradle文件 // 0 def bdt = ...

    gradle打包

    gradle.properties文件

    buildType=Release
    

    app的build.gradle文件

    // 0
    def bdt = buildType
    // 1
    def publish = project.tasks.create("publishAll")// publish all task
        android.applicationVariants.all { variant ->
            // variant.outputs是一个数组,调用each方法进行遍历
            variant.outputs.all { output ->
                def apkFile = output.outputFile.parent
                // 2
                outputFileName = "V" + output.apkData.versionCode + "_" + output.apkData.fullName + ".apk"
                // 3
                File outDir = file("../apks")
                def task = project.tasks.create("publish${variant.name.capitalize()}Apk", Copy)
                task.from "${apkFile}/${outputFileName}"
                task.into outDir
                if ("Release" == bdt) {
                // 4
                    task.dependsOn project.tasks.getByName("assemble${variant.flavorName.capitalize()}Release")
                } else {
                    task.dependsOn project.tasks.getByName("assemble${variant.flavorName.capitalize()}Debug")
                }
                // 5
                publish.dependsOn task
            }
        }
    

    注释0

    将properties中的值赋值给bdt

    注释1

    创建一个叫做publishAll的task任务

    注释2

    对输出的apk重新命名

    注释3

    将所有输出的apk放入到统一的目录
    创建以变体为名称的发布任务,类型为Copy
    在这里插入图片描述

    注释4

    规定创建task的执行顺序,在名称为assemble${variant.flavorName.capitalize()}Release的task任务之后执行

    注释5

    规定publishAll在注解4任务执行之后执行

    查看task执行依赖

    ./gradlew 你定义的task名称 --dry-run

    例如
    ./gradlew publishAll --dry-run

    在这里插入图片描述

    结果

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • gradle 打包

    2021-01-17 01:08:57
    gradle 打包打包 spring boot 单模块 打包 spring boot 单模块 // build.gradle //... ... ... ... dependencies { compile project(':common') implementation 'org.springframework.boot:spring-boot-starter'...

    打包 spring boot 单模块

    // build.gradle
    
    //... ... ... ...
    
    dependencies {
        compile project(':common')
        implementation 'org.springframework.boot:spring-boot-starter'
        implementation 'org.springframework.boot:spring-boot-starter-webflux'
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok' //这个可以处理Gradle 找不到 lombok 符号
    }
    
    // 使用闭包定义任务
    task copyJar(type: Copy) {
        delete "$buildDir\\libs\\lib"
        from configurations.compileClasspath
        into "$buildDir\\libs\\lib"
    }
    task copyConfigFile(type: Copy)  {
        delete "$buildDir\\libs\\config"
        from('src/main/resources')
        into 'build/libs/config'
    }
    task copyBinFile(type: Copy)  {
        delete "$buildDir\\libs\\bin"
        from('src/main/bin')
        into 'build/libs/bin'
    }
    task copyLogFile(type: Copy)  {
        delete "$buildDir\\libs\\log"
        from '../log/boot-server-log'
        into 'build/libs/log/boot-server-log'
    }
    task copyOtherFile(type: Copy)  {
        delete "$buildDir\\libs"
        from 'README.md'
        into 'build/libs'
    }
    //使用归档任务可以创建Zip、Tar、Jar、War、Ear等归档文件
    task dist(type: Zip) {
        from "$buildDir/libs"
        into 'serv'
        destinationDir file("$buildDir/dist")
        doLast {
            delete "$buildDir/libs"
        }
    }
    
    bootJar {
        archivesBaseName = 'boot-server'
        project.version =  '0.0.1' //artifactId + gitHashAndBuildTime()
        excludes = ["*.jar"]
        manifest {
            attributes "Manifest-Version": 1.0,
                    //"Main-Class": "App",
                    'Class-Path': configurations.compileClasspath.files.collect { "lib/${it.name}" }.join(' ')
        }
    }
    // 最后运行这个
    task release(type: Copy, dependsOn: [build, copyJar,copyConfigFile,copyBinFile,copyLogFile,copyOtherFile,dist])
    
    
    
    展开全文
  • 前提背景公司要封装一个工具类,把常用的mybatis,apollo,redis,初始化运行检查等等都封装在一起,项目建好了,但是打包发布nexus之后,别的项目死活拉不到依赖包,经查,是gradle打包时生成的pom文件中没有加入模块依赖....

    72280c22e0b0e709a781c85d355b0112.png

    前提背景

    公司要封装一个工具类,把常用的mybatis,apollo,redis,初始化运行检查等等都封装在一起,项目建好了,但是打包发布nexus之后,别的项目死活拉不到依赖包,经查,是gradle打包时生成的pom文件中没有加入模块依赖.

    以前的解决方案及问题

    以前公司用gradle打包的时候,先新建一个maven_push.gradle ,然后在要打包的模块build.gradle中加上一句

    apply from'../maven_push.gradle'

    maven_push.gradle的内容如下:

    // The Maven plugin adds support for deploying artifacts to Maven repositories.// 一个可以让你把库上传到maven仓库的插件apply plugin: 'maven'// The signing plugin adds the ability to digitally sign built files and artifacts. These digital signatures can then be used to prove who built the artifact the signature is attached to as well as other information such as when the signature was generated.// 对库文件进行数字签名的插件,可以通过签名知道谁创建了这个库文件,签名的时间等等信息apply plugin: 'signing'// 声明变量记录maven库地址def mavenRepositoryUrl// 判断是发布到正式库,还是snapshots库if (isReleaseBuild()) {    println 'RELEASE BUILD'    // 下面的库地址指向的是我们私有仓库的Releases 仓库    mavenRepositoryUrl = "http://xxx.com/repository/maven-public/"} else {    println 'SNAPSHOTS BUILD'    // 下面的库地址指向的是我们私有仓库的snapshots 仓库    mavenRepositoryUrl = "http://xxxx.com/repository/maven-snapshots/"}// 根据我们在likelib下gradle.properties中声明的版本名称,来分辨是Release版本还是 snapshots版本def isReleaseBuild() {    return !VERSION_NAME.contains("SNAPSHOT");}afterEvaluate { project ->    // 我们声明我们要执行的上传到maven的task    uploadArchives {        repositories {            mavenDeployer {                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }                // 我们类比下compile com.squareup.okhttp:okhttp:2.7.0                // artifactId 对应com.squareup.okhttp; groupId 对应okhttp;version对应2.7.0                // 这样就类似坐标的方式定位到了制定的库文件                pom.artifactId = POM_ARTIFACT_ID                pom.groupId = POM_GROUP_ID                pom.version = VERSION_NAME                // 授权验证,这里也就是你登陆搭建的私服服务器时候的用户名\密码                repository(url: mavenRepositoryUrl) {                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())                }                // 这里是配置我们maven库需要的pom.xml文件的各个内容,具体意思我们在主目录gradle.properties中解释                pom.project {                    name POM_NAME                    packaging POM_PACKAGING                    description POM_DESCRIPTION                    url POM_URL                }            }        }    }    // 进行数字签名    signing {        required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }        sign configurations.archives    }}

    这样是可以打包,但是对模块依赖就没办法打包,如gradle依赖配置如下:

    dependencies {  compile project(":tools-mybatis")  compile project(":tools-ops")}

    但打包出来的pom.xml文件里面并没有这两个依赖.

    新的打包方案

    上述通过 maven 插件可能还有别的姿试可以打包,但是没有找到,通过查找官方文档,找到了以下解决方案引入 maven-publish,这个plugin , 然后在模块build.gradle中加入配置:

    publishing {  publications {    maven(MavenPublication) {      groupId = group      artifactId = 'tools-starter'      version = version      from components.java    }  }  repositories {    maven { url "http://xxxx.com/repository/maven-snapshots/"      credentials {        username 'xxx'        password 'xxxx'      }    }  }}

    这样就可以通过Idea右边gradle工具栏的插件菜单来发布了

    073c542cf3afd1e82774592257a17b48.png

    这样生成的pom.xml中是包含这两个依赖的.

    更多文章请点击查看原文

    展开全文
  • 在使用Gradle打包成一个可运行的Jar包的时候,需要把编译时依赖的库也打包进去,因此要搞清楚打包时如何才能将库文件打包进去。对于implementation引入的库,则需要如下的语句:from {configurations.runtime...

    在使用Gradle打包成一个可运行的Jar包的时候,需要把编译时依赖的库也打包进去,因此要搞清楚打包时如何才能将库文件打包进去。

    对于implementation引入的库,则需要如下的语句:

    from {

    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }

    }

    对于testImplementation引入的库,则需要如下的语句:

    from {

    configurations.testRuntimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }

    }

    我们只需要打包运行时的依赖包即可,则完整build.gradle如下:

    plugins {

    id 'java'

    id 'org.jetbrains.kotlin.jvm' version '1.3.21'

    }

    group 'com.zhuyanbin'

    version '1.0.0'

    sourceCompatibility = 1.8

    repositories {

    mavenCentral()

    }

    jar {

    manifest {

    attributes 'Implementation-Title' : 'DropBox-Backup-Service'

    attributes 'Manifest-Version': '1.0.0'

    attributes 'Main-Class': 'com.zhuyanbin.dropbox.AppKt'

    }

    from {

    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }

    }

    }

    dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

    implementation 'com.dropbox.core:dropbox-core-sdk:3.0.10'

    implementation 'commons-configuration:commons-configuration:1.9'

    testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version:'1.4.0'

    testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.4.0'

    testImplementation group: 'org.junit.vintage', name: 'junit-vintage-engine', version:'5.4.0'

    }

    compileKotlin {

    kotlinOptions.jvmTarget = "1.8"

    }

    compileTestKotlin {

    kotlinOptions.jvmTarget = "1.8"

    }

    展开全文
  • Android gradle打包手册

    2017-02-27 10:01:17
    Android gradle打包手册
  • 转载地址:http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html以gradle小系列所举例子为示例,在此处介绍两种gradle发布...
  • android用Eclipse Gradle打包

    热门讨论 2014-11-18 11:24:11
    Gradle打包 批量打包 android eclipse
  • springboot gradle打包

    2019-05-23 15:57:37
    springboot gradle打包,需要在build.gradle文件中声明plugin,否则无法打成spirngboot的main启动jar
  • 近期用android studio来做android开发的IDE,它是使用gradle来构建的,于是開始学习gradle.如今有一个项目,里面有一个android-library的模块。我想在做release的时候,把这个模块中我写的代码编译并打包成jar包,...
  • android gradle打包

    2020-04-17 22:24:43
    gradle打包 gradle就是构建工具,他使用的语言是groovy 功能类似java的maven、ant建立文件依赖关系,并打包输出 Maven打包配置 <dependency> <groupId>junit</groupId> <artifactId>...
  • 这篇文章主要介绍Android用gradle打包,并且调用python脚本将打包好的apk上传到fir.im供相关人员下载,对于学习gradle 打包和python 几个常用网络库有一定帮助 关键字 :Android Gradle Python fir.im 1 开发前准备 ...
  • Android Gradle打包

    2019-12-02 10:55:59
    在Android Stdio中使用gradle打包相对来说比较容易,因为AS集成了gradle。 只需在根目录下调用gradle assembleDebug命令就可在app\build\outputs\apk目录下看到新的apk文件。 1. 添加签名 签名配置,这个配置可以在...
  • 打包 Android源代码gradle打包
  • 本文通过图文并茂的形式给大家介绍了Android eclipse使用gradle打包的方法,需要的朋友可以参考下
  • gradle打包简单教程demo

    2015-05-05 19:26:32
    gradle打包教程demo,可配置包名 渠道好 资源文件等。
  • 'junit', name: 'junit', version: '4.12'implementation('io.netty:netty-all:4.1.43.Final')implementation("com.google.guava:guava:28.1-jre")}在根项目的build.gradle中,添加如...
  • 主要介绍了android studio 3.0 gradle 打包脚本配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • unity gradle 打包 记录

    2019-10-19 10:22:19
    gradle打包 需要注意 事项 : 首先确认jdk sdk 配置完成 接着打包的时候 要记得 包名要改 不能用默认的 还要记得 签名
  • Gradle打包命令记录

    千次阅读 2018-11-13 09:29:19
    Gradle打包命令记录第一种方式:gradle build执行后在在build/lib下生成war包第二种方式:gradle cleangradle --refresh-dependencies assemble ...
  • } dependencies { classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}" } } sourceCompatibility = 1.8 version = ‘1.0‘ jar { manifest { attributes ‘Implementation-Title...
  • 打包成一个Jarjar {from {//添加依懒到打包文件//configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }configurations.runtime.collect{zipTree(it)}}manifest {attributes 'Main-Class': ...
  • gradle打包android注意事项生成签名gradle切国内源Dockerfiledocker-compose打包命令GradleDaemon(守护进程) 生成签名 keytool -genkey -alias duanyiwen -keyalg RSA -validity 20000 -keystore duanyiwen.jks ...
  • 前言使用gradle打包react native的时候,出现了如下报错,下面和大家说一下解决的具体办法Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0问题详解从字面意思来看,是...
  • 前提背景公司要封装一个工具类,把常用的mybatis,apollo,redis,初始化运行检查等等都封装在一起,项目建好了,但是打包发布nexus之后,别的项目死活拉不到依赖包,经查,是gradle打包时生成的pom文件中没有加入模块依赖....
  • Android打包之Gradle打包

    2016-02-28 15:40:20
    最近尝试了一下Android的Gradle打包,发现确实比Ant打包会方便很多,特此记录下来。 注:android的gradle现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经被移除,无法使用...
  • Gradle 打包跳过 test

    千次阅读 2019-08-11 00:16:27
    gradle 打包时跳过 test 在 build.gradle 文件的 buildscript 代码块中添加如下代码: //skip Test tasks gradle.taskGraph.whenReady { tasks.each { task -> if (task.name.contains("test")) ...
  • 解决gradle打包中文乱码问题

    千次阅读 2019-10-29 15:32:50
    解决gradle打包中文乱码问题 在gradle安装目录下的/bin文件夹中的gradle和gradle.bat更改配置: “-Dfile.encoding=UTF-8”。如图: (水一下)
  • 公司部署自动打包平台需要导出工具为可运行的单独的jar;百度了半天大家都众说纷纭,多番尝试之后,发现大部分的例子都不能成功打出可独立运行并且包含依赖第三方库的jar包。最后经过多番尝试,终于知道了一个插件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,890
精华内容 3,156
关键字:

gradle打包