2017年10月

Maven工程,经常需要查找冲突的jar包,一个常用的方式是在命令行执行:

mvn dependency:tree

然后在打印出来的依赖树中找到依赖的(包括间接依赖)的jar包的不同版本。
如果依赖较多的话,可以将其输出到一个文件中,然后便于查找,像这样:

mvn dependency:tree > dependency.txt

如果使用Intellij IDEA的话,可以安装Maven Helper插件。

具体可以在IDEA中依次点击:File-Settings-Plugins-browser repositories, 然后在搜索框输入 Maven Helper搜索,即可搜出来进行安装。安装后需要重启下。

安装完成后,就可以在IDEA中打开项目的pom.xml文件,在编辑器面板的左下角,可以发现多了一个TAB,Dependency Analyzer,点击切换到此面板,就可以在此查看冲突的jar包,也可以查找jar,通过点击查看依赖树,右击包名可以跳转到pom.xml文件中的对应位置,甚至可以直接exclude此二方包。更多功能可以自己安装后探索下, 或者参考附录的链接了解此插件的更多信息。

参考:
https://plugins.jetbrains.com/plugin/7179-maven-helper

像Python一样,用Clojure写一些日常要用的小脚本。

1)常规方法
前提:安装了JDK,并下载了clojure的jar包。
因为clojure本身是基于JVM的,而且它本身集成在一个jar包里,因此,执行clojure脚本可以直接通过java命令。
如下:

java -cp /path/to/clojure.jar clojure.main file1.clj arg1 arg2

在file1.clj中,可以通过command-line-args得到参数的list,比如(arg1, arg2)。

2)使用leiningen的插件lein-exec
前提:安装了JDK(v8.0)和Leiningen(v2.8.0)。
在~/.lein/profiles.clj(如果不存在,则创建此文件)中添加:

{:user {:plugins [[lein-exec "0.3.6"]]}}

然后在命令行执行lein version 或者其他的task,那么就会自动下载插件(默认下载的~/.m2/repository/lein-exec/目录下)。
此步如果卡着不动,可能是网络原因,可以从:(https://mvnrepository.com/artifact/lein-exec/lein-exec/0.3.6) 手动下载下来,放到本地对应目录下。

之后就可以通过

lein exec file1.clj arg1 arg2

来执行脚本文件了。在file1.clj中,可以通过command-line-args得到参数的list,但是与上面的常规方法不一样的是:它是包含脚本文件的名字的,比如(file1.clj, arg1, arg2)。

参考:
https://github.com/kumarshantanu/lein-exec
https://clojure.github.io/clojure/clojure.main-api.html