Рубрики
Без рубрики

Средство просмотра зависимостей Java с maven и fzf

Иногда необходимо заглянуть в зависимости, их классы и методы. Все хорошее… Помеченный как java, dependencies, fzf, maven.

Иногда необходимо заглянуть в зависимости, их классы и методы. Каждая хорошая ИДЕЯ имеет это на борту, и вы можете легко прокручивать и искать библиотеки и классы. Но иногда вы можете захотеть быстро взглянуть и не хотите загружать свою любимую среду разработки, или вам нравится самоуничижение и вы используете Vim.

Поскольку coc-vim делает хорошую работу по обеспечению поддержки языкового сервера в Vim, некоторые удобства иногда отсутствуют. Одним из них является упомянутый обзор зависимостей. Для этого случая я написал небольшой сценарий:

#!/bin/bash

# generate dependency list if not exists
if [ ! -f .dependencies ]; then
    echo "Generate dependency list"
    mvn dependency:list -DoutputFile=./.dependencies
fi

# check the last modified, if pom is younger the dependency list will be updated
if [ .dependencies -ot pom.xml  ]
then
    mvn dependency:list -DoutputFile=./.dependencies
fi
# open selection list for the dependencies
dependencies=$(cat ./.dependencies|fzf)

packagePath=$(echo $dependencies | cut -d':' -f1 | sed -e 's/\./\//g')
packageName=$(echo $dependencies | cut -d':' -f2)
version=$(echo $dependencies | cut -d':' -f4)

path=$packagePath/$packageName/$version
jar=$packageName-$version.jar

# open selection list for the containing class of the package
classFile=$(jar tf /home/maren/.m2/repository/$path/$jar | grep class | fzf )

# shows the public methods of the classes.
output=$(javap  jar:file:///home/maren/.m2/repository/$path/$jar!/$classFile)
# like cat but on steroids. 
bat --line-range 2:9999 -l Java <<<  $output

Вот небольшая демонстрация:

Оригинал: “https://dev.to/mafflerbach/java-dependency-viewer-with-maven-and-fzf-2dok”