如何使用SublimeLinter-javac将Gradle托管依赖项添加到我的类路径?

时间:2017-07-18 16:13:53

标签: java gradle sublimetext3 sublimelinter

我正试图为我的Java项目设置linting。我使用Sublime Text 3编写代码并使用Gradle从命令行构建。我的问题是我找不到从Gradle添加依赖关系到类路径的方法,以便SublimeLinter3识别它们。我已经尝试添加位于〜/ .gradle / cache的缓存,但这似乎没有用。这实际上是可行的,还是我想做一些无法做到的事情?

2 个答案:

答案 0 :(得分:0)

由于SublimeLinter-javac底层使用javac来执行linting README reflinter.py,您只需将-cp arg配置为包含类路径目录("/gradle/cache/path/*" )。

注意,您需要使用Java 6或更高版本才能为classpath使用通配符选项。

"javac": {
    "lint": "all",
    "args": [
        "-encoding", "UTF8",
         "-cp", "/gradle/cache/path/*",
        "-sourcepath", "${project}/src/"
    ]
}

让我知道这是否有效。

[UPDATE]

Setting the class path的“了解类路径通配符”部分中,详细说明如下(表示嵌套文件夹不会处理):

  

不会递归搜索子目录。例如,foo / *看起来   对于仅在foo中的JAR文件,而不是在foo / bar,foo / baz等中

答案 1 :(得分:0)

我最终必须创建2个单独的Gradle任务:一个将我的依赖项收集到一个文件夹中,另一个用于构建我的测试jar。这样我就可以将具有外部依赖关系的文件夹添加到类路径和具有我的构建和测试jar的文件夹(用于内部依赖项解析)。以下是Gradle任务:

`task copyLibs(type: Copy) {
    from configurations.testRuntime.files
    into "$buildDir/lib"
}
task testJar(type: Jar, dependsOn: testClasses) {
    classifier = 'tests'
    from sourceSets.test.output
}`

执行完这些任务后,我可以添加通过将其放入我的sublime-project文件中创建的jar:

"SublimeLinter": {
    "linters": {
        "javac": {
            "lint": "all",
            "args": [
                "-sourcepath", "/home/griff/orch_engine/src/",
                "-cp", "/home/griff/project/build/lib/*:/home/griff/project/build/libs/*"
            ]
        }
    }
},