有没有办法输出所有可用gradle / maven导入的类

时间:2019-01-01 13:47:10

标签: java maven gradle

我是vim / neovim用户,我想知道是否可以简化不使用intellij或语言服务器就将导入添加到文件java的任务。 因此,我的想法是获取所有类的列表,然后以某种方式使用此列表插入导入语句。

说明我的想法。说我的光标在这里。

var a = List.of(1);
        ^

我正在调用一些vimscript,它为我提供了包括List

的可过滤的导入列表。

也许类似于叫声吗?

3 个答案:

答案 0 :(得分:0)

您可以编写gradle任务以将所有类输出到文件。例如

task dumpClasses {
    inputs.files configurations.compile
    outputs.file "$buildDir/dumpClasses.txt"
    doLast {
        file("$buildDir/dumpClasses.txt").withWriter { writer ->
            configurations.compile.each { file ->
                FileTree tree = file.name.endsWith('.jar')
                   ? zipTree(file)
                   : (file.directory ? fileTree(file) : null)
                if (tree) {
                    tree.matching { include '**/*.class' }.each {
                        writer.println(it.name)
                    }
                } 
            }
        } 
    } 
} 

答案 1 :(得分:0)

如今,Java IDE如此聪明,以至于使用其他任何东西实际上都在浪费您的时间(因此间接地浪费了金钱)。 这与使用记事本代替Word直到(或使用vim代替LibreOffice)直到您想要进行语法检查和嵌入图形等非常相似。当然,如果有足够的时间或肘部润滑脂,您可以这样做,但是为什么要重新发明轮子上的所有轮子呢?办法。 Emacs早在2000年代就拥有一个相当有用的Java开发环境,当它出现时,它几乎立即被Eclipse所取代。 举例来说,IntelliJ现在知道如何在方法调用链中显示当前点的类型(对于流非常频繁),说得简短一点对以后阅读代码非常有帮助。 因此,要获得所需的东西,无论如何都需要一个可以理解您代码的IDE。如果您想使用vim的全部功能,是否考虑过告诉IDE在您的源代码上启动vim? IntelliJ无需通知即可拾取文件系统中的更改。

答案 2 :(得分:-1)

看看vim-javacomplete2。它的功能之一是自动添加导入,包括static导入和嵌套类的导入。它使用Maven,Gradle或Eclipse的.classpath文件自动搜索类文件。