如何使用 SublimeLinter-javac 将 Gradle 托管依赖项添加到我的类路径?
How can I add Gradle managed dependencies to my classpath using SublimeLinter-javac?
我正在尝试为我的 Java 项目设置 linting。我正在使用 Sublime Text 3 进行编码,并使用 Gradle 从命令行进行构建。我的问题是我找不到从 Gradle 添加依赖项到类路径以便 SublimeLinter3 识别它们的方法。我试过添加位于 ~/.gradle/cache 的缓存,但这似乎没有用。这实际上是可能的还是我正在尝试做一些无法完成的事情?
由于 SublimeLinter-javac
底层使用 javac 执行 linting README ref and linter.py,您只需配置 -cp
arg 以包含类路径目录 ("/gradle/cache/path/*"
)。
注意,您需要使用 Java 6 或更高版本才能对类路径使用通配符选项。
"javac": {
"lint": "all",
"args": [
"-encoding", "UTF8",
"-cp", "/gradle/cache/path/*",
"-sourcepath", "${project}/src/"
]
}
让我知道这是否可行。
[更新]
在Setting the class path的"Understanding class path wildcards"部分,详细说明如下(这意味着嵌套文件夹不会处理):
Subdirectories are not searched recursively. For example, foo/* looks
for JAR files only in foo, not in foo/bar, foo/baz, etc.
我最终不得不创建 2 个单独的 Gradle 任务:一个将我的依赖项收集到一个文件夹中,另一个构建我的测试 jar。这样我就可以将具有外部依赖项的文件夹添加到类路径以及具有我的构建和测试 jars 的文件夹(用于内部依赖项解析)。以下是 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/*"
]
}
}
},
我正在尝试为我的 Java 项目设置 linting。我正在使用 Sublime Text 3 进行编码,并使用 Gradle 从命令行进行构建。我的问题是我找不到从 Gradle 添加依赖项到类路径以便 SublimeLinter3 识别它们的方法。我试过添加位于 ~/.gradle/cache 的缓存,但这似乎没有用。这实际上是可能的还是我正在尝试做一些无法完成的事情?
由于 SublimeLinter-javac
底层使用 javac 执行 linting README ref and linter.py,您只需配置 -cp
arg 以包含类路径目录 ("/gradle/cache/path/*"
)。
注意,您需要使用 Java 6 或更高版本才能对类路径使用通配符选项。
"javac": {
"lint": "all",
"args": [
"-encoding", "UTF8",
"-cp", "/gradle/cache/path/*",
"-sourcepath", "${project}/src/"
]
}
让我知道这是否可行。
[更新]
在Setting the class path的"Understanding class path wildcards"部分,详细说明如下(这意味着嵌套文件夹不会处理):
Subdirectories are not searched recursively. For example, foo/* looks for JAR files only in foo, not in foo/bar, foo/baz, etc.
我最终不得不创建 2 个单独的 Gradle 任务:一个将我的依赖项收集到一个文件夹中,另一个构建我的测试 jar。这样我就可以将具有外部依赖项的文件夹添加到类路径以及具有我的构建和测试 jars 的文件夹(用于内部依赖项解析)。以下是 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/*"
]
}
}
},