doc - Update doc after merge language server (#1528)
This commit is contained in:
Родитель
8e6e7ac008
Коммит
2243c686f6
|
@ -5,10 +5,10 @@ This extension contains three major components:
|
|||
- [A Gradle language server](./gradle-language-server) that provides language features such as code completion and diagnostics for gradle script files.
|
||||
- [A Gradle project importer](./extension/jdtls.ext/com.microsoft.gradle.bs.importer) that imports Gradle projects detected by the [Gradle Build Server](https://github.com/microsoft/build-server-for-gradle) into the workspace. This importer works with the Language Support for Java extension.
|
||||
|
||||
# Gradle Server and Gradle Language Server
|
||||
# Gradle Server
|
||||
|
||||
<img src="images/gradle-server-architecture.svg" />
|
||||
The gradle server is a long-running Java process that include two threads: 1. Build Server 2. Task Server
|
||||
The gradle server is a long-running Java process that include three threads: 1. Build Server 2. Task Server 3. Language Server
|
||||
|
||||
## Build Server
|
||||
The Gradle Build Server communicates with the Build Client using the [Build Server Protocol](https://build-server-protocol.github.io/) through named pipes.
|
||||
|
@ -17,6 +17,9 @@ Due to Java's limited support for named pipes on Windows, a TypeScript layer nam
|
|||
|
||||
For information about the Build Server itself, visit the [Gradle Build Server](https://github.com/microsoft/build-server-for-gradle).
|
||||
|
||||
## Language Server
|
||||
Language Server provides language features such as code completion and diagnostics for Gradle script files. It communicates with the Language Client using the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) through named pipe.
|
||||
|
||||
## Task Server
|
||||
The task server and client using [gRPC](https://grpc.io/) as the interface between each other. It uses TypeScript (Node.js) on the client and Java on the server. A long running server provides very good performance.
|
||||
|
||||
|
|
|
@ -6,31 +6,37 @@ Start by opening an issue using one of the issue templates, or propose a change
|
|||
|
||||
## Running the Project
|
||||
|
||||
### Build Gradle Server and Gradle Language Server.
|
||||
### Prerequisites
|
||||
1. Install [nvm](https://github.com/nvm-sh/nvm)
|
||||
2. Install [Java version >= 17](https://adoptium.net/)
|
||||
3. Change directory to the root of the project
|
||||
4. Select Node version: `nvm use`
|
||||
5. If using an Apple M1:
|
||||
3. Select Node version: `nvm use`
|
||||
4. If using an Apple M1:
|
||||
- Add `npm_arch=x64` to $HOME/.gradle/gradle.properties
|
||||
- Add `protoc_platform=osx-x86_64` to $HOME/.gradle/gradle.properties
|
||||
6. If using Windows:
|
||||
5. If using Windows:
|
||||
- The extension uses `grpc-tools@1.12.x` dependency which does not work out-of-the-box in Windows (check [this issues](https://github.com/grpc/grpc-node/issues/2338) for details), so you'll need to install some aditional DLLs if the project build is failed.
|
||||
- Download and start [Build Tools for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022).
|
||||
- Go to the **Individual Components** tab and select the following:
|
||||
- `MSVC v143 - VS 2022 C++ x64/x86 build tools (latest)` (replacing `x64/x86` with your arch)
|
||||
- `Windows Universal CRT SDK`
|
||||
- Click `Install` to add the components.
|
||||
7. Build project files: `./gradlew build`
|
||||
|
||||
### Build Gradle Build Server & Gradle Project Importer
|
||||
Before proceeding with the build steps for Build Task Server & Language Server, you need to build the Gradle Build Server and its client (Gradle Project Importer) first.
|
||||
|
||||
1. `cd extension`
|
||||
2. `git clone https://github.com/microsoft/build-server-for-gradle.git `
|
||||
3. Build the Importer and Build Server jars: `../gradlew buildJars`
|
||||
|
||||
### Build Task Server & Language Server
|
||||
After building the Gradle Build Server and its client, proceed with the following steps.
|
||||
|
||||
1. Change directory to the root of the project
|
||||
|
||||
2. Build project files: `./gradlew build`
|
||||
|
||||
Running the build for the first time can take a bit of time, but subsequent builds should be fast.
|
||||
|
||||
### Build Gradle Project Importer
|
||||
1. Install [Java version >= 17](https://adoptium.net/)
|
||||
2. `cd extension`
|
||||
3. `git clone https://github.com/microsoft/build-server-for-gradle.git `
|
||||
4. Build the Importer and Build Server jars: `../gradlew buildJars`
|
||||
|
||||
## Debugging Gradle plugin
|
||||
|
||||
The extension uses a Gradle plugin (`com.microsoft.gradle.GradlePlugin`) to get a lot of information from your project's Gradle build. If you want to debug the Gradle plugin, you can follow these steps:
|
||||
|
@ -51,11 +57,6 @@ The extension uses a Gradle plugin (`com.microsoft.gradle.GradlePlugin`) to get
|
|||
> ```
|
||||
> it indicates that the connection attempt to the Gradle Server was too slow. The [GradleBuildClient](/extension/jdtls.ext/com.microsoft.gradle.bs.importer/src/com/microsoft/gradle/bs/importer/ImporterPlugin.java#L107) requires an active Gradle Server to successfully establish a connection. If you encounter this issue, please retry the connection promptly to avoid this error.
|
||||
|
||||
## Debugging Gradle Language Server (editing feature related)
|
||||
|
||||
1. Run vscode launch configuration `Debug Language Server: Launch Extension`.
|
||||
2. Run vscode launch configuration `Debug Language Server: Launch Language Server`.
|
||||
|
||||
## Development Workflow
|
||||
|
||||
Open the root of the project in VS Code.
|
||||
|
|
|
@ -125,10 +125,13 @@ task serverStartScripts(type: CreateStartScripts) {
|
|||
}
|
||||
|
||||
task copyRuntimeLibs(type: Copy) {
|
||||
into "../extension/lib"
|
||||
from configurations.runtimeClasspath
|
||||
into libsDir
|
||||
duplicatesStrategy = 'exclude'
|
||||
mustRunAfter ':gradle-language-server:customFatJar'
|
||||
doFirst {
|
||||
delete libsDir
|
||||
}
|
||||
}
|
||||
|
||||
project.tasks.named("processResources") {
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
До Ширина: | Высота: | Размер: 281 KiB После Ширина: | Высота: | Размер: 308 KiB |
Загрузка…
Ссылка в новой задаче