Java gradle集外部类路径

Java gradle集外部类路径,java,gradle,classpath,Java,Gradle,Classpath,我希望通过将类路径导出到$classpath,将gradle创建的类路径与外部应用程序(VIM)共享。我已经尝试在shell中通过调用gradle和设置变量来实现这一点,但是有大量额外的输出使得这一过程变得很麻烦。我还研究了通过gradle脚本执行shell命令,但这似乎创建了一个新的shell实例,因此不会影响当前shell的env变量 有人有完成这项工作的经验吗?谢谢你的帮助 我认为举个例子有助于澄清: task classpath { classpathcmd = "export

我希望通过将类路径导出到$classpath,将gradle创建的类路径与外部应用程序(VIM)共享。我已经尝试在shell中通过调用gradle和设置变量来实现这一点,但是有大量额外的输出使得这一过程变得很麻烦。我还研究了通过gradle脚本执行shell命令,但这似乎创建了一个新的shell实例,因此不会影响当前shell的env变量

有人有完成这项工作的经验吗?谢谢你的帮助

我认为举个例子有助于澄清:

task classpath {
    classpathcmd = "export CLASSPATH=" + sourceSets.test.runtimeClasspath.asPath
    // Prints too much extra text
    println classpathcmd
    // Executes command in another shell instance so the variable is "lost"
    exec {
        executable = "sh"
        args = classpathcmd
    }
    // Stracktrace because of file not found exception
    exec {
        commandLine classpathcmd
    }
 }

您可以为此编写一个任务并调用它(可能使用
--quiet
),或者使用Gradle工具API(可能来自vim插件)。

--quiet仍然会打印大量额外的文本,这些文本需要由awk或grep解析。我已经编写了一个任务,但似乎没有任何方法可以向当前shell发送命令。我尝试了“命令行”功能,但它需要一个文件目标,因此发送“导出”命令会导致找不到文件。不确定您所说的是哪个
commandLine
功能。如果发送到std out无法剪切它,则将其发送到文件。或者编写一个使用Gradle工具API的vim插件(但这需要更多的努力)。如果没有更优雅的解决方案,我会接受这个答案。就工具api而言,我可以走这条路,但VIM只支持Cruby和Cpython开箱即用,以桥接到JVM可能是一项艰巨的任务。(FWIW,任务没有正确声明;它的整个主体必须用
doLast{}
包装。但是这并不能解决当前的问题。)向文件写入最终成为解决方案。我使用了一个vim脚本片段,它在目录中加载了一个“.vimrc.local”,为javacomplete.vim插件设置了类路径。我将此任务添加为一个vim代码段,这样我就可以将其放入后续的构建脚本中。谢谢