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 国际许可协议进行许可。
  • 相关阅读:
    Vue响应式原理
    vue 与 react
    vuex
    受控组件( controlled component )与不受控制的组件( uncontrolled component )区别
    redux学习语录
    Flux
    MVC和MVVM 架构模式/设计思想
    immutable
    JS中一些兼容性问题
    @芥末的糖 ---------- node连接数据库两种方式mysql和moogoDB
  • 原文地址:https://www.cnblogs.com/lshare/p/11334320.html
Copyright © 2011-2022 走看看