Attempt to fix plugin mess
This commit is contained in:
22
README.md
22
README.md
@@ -9,7 +9,7 @@ For further information go to our [Spring gRPC reference documentation](https://
|
||||
|
||||
# Getting Started
|
||||
|
||||
This section offers jumping off points for how to get started using Spring gRPC. There is a simple sample project in the `samples` directory (e.g. [`grpc-server`](https://github.com/spring-projects/spring-grpc/tree/main/samples/grpc-server)). You can run it with `./mvnw spring-boot:run` or `./gradlew bootRun`. You will see the following code in that sample.
|
||||
This section offers jumping off points for how to get started using Spring gRPC. There is a simple sample project in the `samples` directory (e.g. [`grpc-server`](https://github.com/spring-projects/spring-grpc/tree/main/samples/grpc-server)). You can run it with `mvn spring-boot:run` or `gradle bootRun`. You will see the following code in that sample.
|
||||
|
||||
Want to get started? Let’s speedrun a working service.
|
||||
|
||||
@@ -19,15 +19,13 @@ Generate the project and unzip the downloaded result.
|
||||
|
||||
Open it in your IDE in the usual way. E.g. if you’re using IntelliJ IDEA: `idea pom.xml`; or for VSCode `code .`.
|
||||
|
||||
Define a `.proto` service definition file `src/main/proto/hello.proto` with the following contents:
|
||||
|
||||
IMPORTANT: Be sure to change the `java_package` to the one you chose in Spring Initializr
|
||||
Define a `.proto` service definition file `src/main/protobuf/hello.proto` with the following contents:
|
||||
|
||||
```proto
|
||||
syntax = "proto3";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "<your-package-name-goes-here>.proto";
|
||||
option java_package = "org.springframework.grpc.sample.proto";
|
||||
option java_outer_classname = "HelloWorldProto";
|
||||
|
||||
// The greeting service definition.
|
||||
@@ -60,15 +58,7 @@ or
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
Two new folders will be generated containing the source code for the stubs.
|
||||
|
||||
_For Maven_: `target/generated-sources/protobuf/grpc-java` and `target/generated-sources/protobuf/java`.
|
||||
|
||||
_For Gradle_: `build/generated/source/proto/main/grpc` and `build/generated/source/proto/main/java`)
|
||||
|
||||
You may need to instruct your IDE to mark them as source roots.
|
||||
In IntelliJ IDEA, right-click the folder, choose `Mark Directory As` -> `Generated Source Root`.
|
||||
Eclipse or VSCode will add them automatically for you.
|
||||
You’ll get two new folders in the `target` directory (or `build` for Gradle): `target/target/generated-sources/protobuf/grpc-java` and `target/target/generated-sources/protobuf/java`. You may need to instruct your IDE to mark them as source roots. In IntelliJ IDEA, you’d right click the folder, choose `Mark Directory As` -> `Generated Source Root`. Eclipse or VSCode will add them automatically for you.
|
||||
|
||||
Now you can implement a service based on the generated stubs:
|
||||
|
||||
@@ -122,7 +112,7 @@ Run the program in the usual way:
|
||||
or
|
||||
|
||||
```shell
|
||||
./gradlew bootRun
|
||||
./gradle bootRun
|
||||
```
|
||||
|
||||
You can try it out using a gRPC client like `grpcurl`:
|
||||
@@ -254,7 +244,7 @@ public class GrpcServerApplication {
|
||||
}
|
||||
```
|
||||
|
||||
Run it from your IDE, or on the command line with `./mvnw spring-boot:run` or `./gradlew bootRun`.
|
||||
Run it from your IDE, or on the command line with `mvn spring-boot:run` or `gradle bootRun`.
|
||||
|
||||
### gRPC Client
|
||||
|
||||
|
||||
@@ -1,59 +1,67 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
}
|
||||
|
||||
group = 'com.example'
|
||||
version = '0.9.0-SNAPSHOT'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-client-spring-boot-starter'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testImplementation 'org.springframework.experimental.boot:spring-boot-testjars-maven:0.0.3'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
implementation 'org.springframework.grpc:spring-grpc-client-spring-boot-starter'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testImplementation 'org.springframework.experimental.boot:spring-boot-testjars-maven:0.0.3'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
useJUnitPlatform()
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,69 +1,77 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'org.graalvm.buildtools.native' version '0.10.3'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'org.graalvm.buildtools.native' version '0.10.3'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
}
|
||||
|
||||
group = 'com.example'
|
||||
version = '0.9.0-SNAPSHOT'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
processTestAot {
|
||||
enabled = false
|
||||
enabled = false
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testImplementation 'org.springframework.experimental.boot:spring-boot-testjars-maven:0.0.4'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testImplementation 'org.springframework.experimental.boot:spring-boot-testjars-maven:0.0.4'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ dependencyManagement {
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
|
||||
implementation 'io.projectreactor:reactor-core'
|
||||
@@ -42,9 +42,17 @@ dependencies {
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -1,62 +1,70 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'org.graalvm.buildtools.native' version '0.10.3'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.0'
|
||||
id 'io.spring.dependency-management' version '1.1.6'
|
||||
id 'org.graalvm.buildtools.native' version '0.10.3'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
}
|
||||
|
||||
group = 'com.example'
|
||||
version = '0.9.0-SNAPSHOT'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.spring.io/milestone' }
|
||||
maven { url 'https://repo.spring.io/snapshot' }
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
imports {
|
||||
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.9.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
protoc {
|
||||
artifact = "com.google.protobuf:protoc:${dependencyManagement.importedProperties['protobuf-java.version']}"
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = "io.grpc:protoc-gen-grpc-java:${dependencyManagement.importedProperties['grpc.version']}"
|
||||
}
|
||||
}
|
||||
generateProtoTasks {
|
||||
all()*.plugins {
|
||||
grpc {
|
||||
option 'jakarta_omit'
|
||||
option '@generated=omit'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,13 @@ test {
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
|
||||
@@ -42,9 +42,17 @@ dependencies {
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -29,7 +29,7 @@ dependencyManagement {
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
@@ -38,9 +38,17 @@ dependencies {
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -31,16 +31,24 @@ dependencies {
|
||||
implementation 'org.springframework.grpc:spring-grpc-server-web-spring-boot-starter'
|
||||
implementation 'io.grpc:grpc-services'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.grpc:spring-grpc-test'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -38,9 +38,17 @@ dependencies {
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -37,9 +37,17 @@ dependencies {
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir 'src/main/protobuf'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
|
||||
@@ -11,7 +11,7 @@ Generate the project and unzip the downloaded result.
|
||||
|
||||
Open it in your IDE in the usual way. E.g. if you're using IntelliJ IDEA: `idea pom.xml`; or for VSCode `code .`.
|
||||
|
||||
Define a `.proto` service definition file `src/main/proto/hello.proto` with the following contents:
|
||||
Define a `.proto` service definition file `src/main/protobuf/hello.proto` with the following contents:
|
||||
|
||||
[source,proto]
|
||||
----
|
||||
|
||||
Reference in New Issue
Block a user