zoukankan      html  css  js  c++  java
  • Gradle

    使用初始化配置

    (1)场景

    当需要所有的 gradle 项目都进行同样的配置时。

    (2)过程

    1. USER_HOME/.gradle 目录创建名为 init.gradle的文本文件;
    2. init.gradle 编写初始化脚本。

    (3)案例:配置自建的 Maven 私有服务器

    // init.gradle
    allprojects {
     
      ext.RepoConfigurator = {
        maven {
          url 'http://maven-xx-inc.com/repository/maven-public/'
        }
        maven {
          url 'http://nexus.mobisummer-inc.com/nexus/content/groups/public'
        }
      }
     
      buildscript.repositories RepoConfigurator
      repositories RepoConfigurator
    }
    

    排错

    Can't execute jar- file: “no main manifest attribute”

    在 Linux 上运行 jar 包时出现无法执行的错误,原来是没有配置主类,解决方案如下:

    apply plugin: 'java'
    
    jar {
        manifest {
            attributes 'Main-Class': 'com.package.app.Class'
        }
    }
    

    打出的包不包含任何第三方依赖

    解压打出来的 jar 包发现里面没有第三方依赖无法运行,这时候有两种解决方案:

    (1)把第三方的 jar 包收集放到一个 class path 目录,然后就可以正常启动了。不过这种方法很笨,因为现在的依赖都是通过 gradle 或者 maven 引入,手动去找这些 jar 包并放到服务器上的 class path 目录,这很费劲,不过好处是打出的包很小,上传很快。

    (2)使用 shadow 将所有依赖合并成一个 jar 包,这很神奇。

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:4.0.3"
      }
    }
    
    apply plugin: 'java'
    apply plugin: "com.github.johnrengelman.shadow"
    
    shadowJar {
      manifest {
        attributes 'Main-Class': 'com.example.Main'
      }
    }
    

    改完 gradle 脚本之后打包命令不再是 ./gradlew assemble 而是用 ./gradlew shadowJar

    写在后面:

    1. 子曰:「学而不思则罔,思而不学则殆」。
    2. 站点地图
    2. 本作品作者为 Lshare,采用知识共享署名 4.0 国际许可协议进行许可。
  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/lshare/p/11334320.html
Copyright © 2011-2022 走看看