Skip to content

Instantly share code, notes, and snippets.

@xiongjia
Last active November 18, 2017 15:30
Show Gist options
  • Save xiongjia/ff0fc2ef14eb6abcdc98eb12ab22fad2 to your computer and use it in GitHub Desktop.
Save xiongjia/ff0fc2ef14eb6abcdc98eb12ab22fad2 to your computer and use it in GitHub Desktop.
Cheatsheet - DEV Environment #devnotes

开发环境备忘

Java

sdkman

  • 管理多个 JDK, JRE 以及 build tools ( Maven, Gradle, 等) , 还有 Groovy 等
  • Github: https://github.com/sdkman/sdkman-cli
  • Notes:
    • Windows OS 上不太好用, 因为依赖 cygwin 基本可放弃
    • 中国区注意修改 CURL 的设置来适应特殊网络环境
      • curl 的 proxy 可以从 $http_proxy & $https_proxy读入
      • 修改 ~/.sdkman/etc/config 有助于减少失败
        sdkman_curl_connect_timeout=30
        sdkman_curl_max_time=15
        

Gradle

  • 用 sdkman 安装, Windows 上直接下 https://gradle.org/
  • Configuration
    • gradle 会从 ~/.gradle 或者 $GRADLE_USER_HOME 中读取  - ~/.gradle/gradle.properties 用来定义 Gradle 运行时的 properties。内容如:
# sample of proxy setting
systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=hostname
systemProp.https.proxyPort=8080
org.gradle.daemon=false
  • ~/.gradle/init.gradle Gradle 运行时会先加载这个 Gradle 。可以用这个 init.gradle 来修改 Maven 以及 gradle plugin 的 mirror 设置。中国区目前比较快的 mirror 是 aliyun 的 Nexus http://maven.aliyun.com/nexus/buildscript 用修改 greadle plugin;repositories 替换 Maven Repositories (直接不判断全部替换也可以,不过有时厂里有自己的 Nexus server 全部替换会有问题)。内容如:
allprojects {
  buildscript{
    repositories{
      maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
  }
  repositories {
    def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
    all { ArtifactRepository repo ->
      if (repo instanceof MavenArtifactRepository && repo.url != null) {
        def url = repo.url.toString()
        project.logger.lifecycle "Repository ${repo.url} "
        if (url.startsWith('https://repo1.maven.org/maven2') || 
            url.startsWith('https://jcenter.bintray.com/') || 
            url.startsWith('https://plugins.gradle.org/m2')) {
          project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
          remove repo
        }
      }
    }
    maven { url REPOSITORY_URL }
  }
}
  • Plugins
    • Dependency lock: nebula.dependency-lock https://github.com/nebula-plugins/gradle-dependency-lock-plugin
         - 用来 lock 依赖的 jar 文件的版本,防止 build 时 Gradle 找最新的版本    - gradle generateLock saveLock 产生 dependencies.lock 文件,以后 build 会依照 .lock 文件来生成    - NOTES 不同的 Gradle version 产生的 lock 不同,比如 Gradle 3 的 lock 不能给 Gradle 4 用。(可以用 Gradlew 解决版本差异问题)
    • Project Report: https://docs.gradle.org/current/userguide/project_reports_plugin.html    - 用来生成 Project Dependency 之类的 report    - gradle projectReport ,对应的 report 生成在 build/reports/project 下。

IDEA

macOS

Karabiner Elements

Amethyst

  • macOS 下的 Tiling windows manage
  • Github: https://github.com/ianyh/Amethyst
  • Installation: brew cask install amethyst
  • Notes: 安装后需要添加 Amethyst.app 的 accessibility APIs 权限
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment