- 管理多个 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
- curl 的 proxy 可以从
- 用 sdkman 安装, Windows 上直接下 https://gradle.org/
- Configuration
- gradle 会从
~/.gradle
或者 $GRADLE_USER_HOME 中读取 -~/.gradle/gradle.properties
用来定义 Gradle 运行时的 properties。内容如:
- gradle 会从
# 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
下。
- Dependency lock:
- 不是很依赖 IDEA. 一般只是用 Gradle 的 IDEA plugin 来创建一个 project . 日常开发调试用一下,打包,编译等均不依赖 IDEA.
- 安装下载 https://www.jetbrains.com/
- plugins: https://plugins.jetbrains.com/
- Lombok Plugin: https://plugins.jetbrains.com/plugin/6317-lombok-plugin
- CheckStyle-IDEA: https://plugins.jetbrains.com/plugin/1065-checkstyle-idea
- 外接机械键盘时,需要 mapping 顶上那排 function keys
- Github: https://github.com/tekezo/Karabiner-Elements
- Installation: https://pqrs.org/osx/karabiner/
- Notes: 检查 macOS 版本;可以直接下 dmg , 自己 build 会遇到 boost 依赖等问题; 按照自己习惯配置
- macOS 下的 Tiling windows manage
- Github: https://github.com/ianyh/Amethyst
- Installation:
brew cask install amethyst
- Notes: 安装后需要添加 Amethyst.app 的 accessibility APIs 权限