diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c96b3b64..27ea163b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,9 +16,28 @@ ### 安装到本地 -本地开发时,可以执行`as-package.sh`来打包,会自动安装最新版本的arthas到`~/.arthas`目录里。debug时会自动使用最新版本。 +本地开发时,推荐执行`as-package.sh`来打包,会自动安装最新版本的arthas到`~/.arthas`目录里。debug时会自动使用最新版本。 -也可以直接 `mvn clean package -DskipTests`打包,生成的zip在 `packaging/target/` 下面 +`as.sh`在启动时,会对`~/.arthas/lib`下面的目录排序,取最新的版本。`as-package.sh`在打包时,会取`pom.xml`里的版本号,再拼接上当前时间,比如: `3.0.5.20180917161808`,这样子排序时取的就是最新的版本。 + +也可以直接 `./mvnw clean package -DskipTests`打包,生成的zip在 `packaging/target/` 下面。但是注意`as.sh`启动加载的是`~/.arthas/lib`下面的版本。 + +### Debug + +Arthas启动过程分为两部分: + +1. 执行`com.taobao.arthas.core.Arthas`,查找到合适的jvm,然后attach上面。如果想debug这部分代码,可以直接 + + ``` + ./as.sh debug pid + ``` + JPDA端口是`8888`,然后可以远程连接来debug。 + 如果启动时等待,则 + ``` + JPDA_SUSPEND=y ./as.sh debug pid + ``` + +1. attach成功之后,arthas agent运行目标进程里。想要调试agent的代码,则需要目标进程本身是以debug方式启动的。可以直接引入arthas的source,打断点 ### 全量打包 @@ -29,7 +48,7 @@ * 全量打包时,需要配置下面的参数(目前只支持mac/linux): ``` - mvn clean package -DskipTests -P full -Dsphinx.binUrl=https://github.com/hengyunabc/sphinx-binary/releases/download/v0.4.0.1/sphinx.osx-x86_64 + ./mvnw clean package -DskipTests -P full -Dsphinx.binUrl=https://github.com/hengyunabc/sphinx-binary/releases/download/v0.4.0.1/sphinx.osx-x86_64 ``` diff --git a/as-package.sh b/as-package.sh index 5954885c1..5541f5fde 100755 --- a/as-package.sh +++ b/as-package.sh @@ -2,7 +2,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -CUR_VERSION="3.0.3" +get_local_maven_project_version() +{ + $DIR/mvnw org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -e '^[^\[]' | cut -b 1-5 +} + +CUR_VERSION=$(get_local_maven_project_version) # arthas's version DATE=$(date '+%Y%m%d%H%M%S') @@ -24,10 +29,11 @@ exit_on_err() exit ${1} } + packaging_bin_path="$(ls ${DIR}/packaging/target/arthas-*-bin.zip)" # maven package the arthas -mvn clean package -Dmaven.test.skip=true -f $DIR/pom.xml \ +$DIR/mvnw clean package -Dmaven.test.skip=true -f $DIR/pom.xml \ || exit_on_err 1 "package arthas failed." rm -r $DIR/core/src/main/resources/com/taobao/arthas/core/res/version diff --git a/site/src/site/sphinx/install-detail.md b/site/src/site/sphinx/install-detail.md index 3984ed2f1..5bac3c19b 100644 --- a/site/src/site/sphinx/install-detail.md +++ b/site/src/site/sphinx/install-detail.md @@ -10,7 +10,7 @@ Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容 curl -L https://alibaba.github.io/arthas/install.sh | sh ``` -上述命令将会下载的启动脚本文件 `as.sh` 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。 +上述命令将会下载的启动脚本文件 `as.sh` 到当前目录,你可以放在任何地方或将其加入到 `$PATH` 中。 直接在shell下面执行`./as.sh`,就会进入交互界面。