一、背景
今天要研究一下阿里的arthas,一款Java 应用诊断利器,想使用非 spring boot 应用使用方式集成到我们的应用中,本来照着官方文档操作也没啥问题,但是,我们项目没有使用maven管理,而是普通的jar包的搞法,这时候就需要想办法把jar弄出来,添加到项目里面。
附上arthas的官网:https://arthas.aliyun.com/
二、操作步骤
(一) 非 spring boot 应用使用方式
我们看一下官网的配置:
非 Spring Boot 应用,可以通过下面的方式来使用:
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-agent-attach</artifactId>
<version>${arthas.version}</version>
</dependency>
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-packaging</artifactId>
<version>${arthas.version}</version>
</dependency>
import com.taobao.arthas.agent.attach.ArthasAgent;
public class ArthasAttachExample {
public static void main(String[] args) {
ArthasAgent.attach();
}
}
也可以配置属性:
HashMap<String, String> configMap = new HashMap<String, String>();
configMap.put("arthas.appName", "demo");
configMap.put("arthas.tunnelServer", "ws://127.0.0.1:7777/ws");
ArthasAgent.attach(configMap);
(二)开始引入jar包
从上面的maven的配置可以看到需要 arthas-agent-attach 和 arthas-packaging 这两个jar包,实际上如果我们只引用这两个jar 是会报缺失Class的错误的。
- 我们知道maven是可以自动检测jar之间的相互依赖关系,会自动帮助我们下载依赖包的,这是maven的强项,也是大家使用maven管理的目的
- 既然知道了maven可以解决依赖,是不是也能把依赖的包帮我们下载下来了呢?
- 答案当然是可以了。继续。。。
(三)导出maven依赖的jar包
-
进入工程目录,打开是这个样子的
-
cmd 进入这个目录,然后执行下面的命令
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile
这个时候我们就会看到在我们的工程目录生成了一个lib文件夹,里面就是我们要的jar包了