使用 OData 生成器生成类型化 OData 客户端:自动生成的代码不使用 SAP 库进行编译
Generate a Typed OData Client With the OData Generator: Autogenerated code does not compile with SAP library
我使用 Maven 插件生成了代码,但代码无法编译。
https://sap.github.io/cloud-sdk/docs/java/features/odata/generate-typed-odata-v2-and-v4-client-for-java
我正在使用 odata V2 插件
我不确定如何解决这个编译问题:
HttpClientAccessor 类型中的方法 getHttpClient(String) 不适用于参数 (HttpDestinationProperties)
这是我的 pom 文件。
<dependency>
<groupId>com.sap.cloud.s4hana.datamodel</groupId>
<artifactId>odata-core</artifactId>
<version>2.28.0</version> </dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version> </dependency>
<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject --> <dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version> </dependency>
com.sap.cloud.sdk.datamodel
odata-generator-maven-plugin
3.59.0
您指的是正确的文档,但版本号是您的 pom 不正确。
在文档中,它表示 3.x.x,截至 2022 年 12 月 10 日将是 3.59.0。
<plugin>
<groupId>com.sap.cloud.sdk.datamodel</groupId>
<artifactId>odata-generator-maven-plugin</artifactId>
<!-- Please use the latest version here-->
<version>3.XX.X</version>
<executions>
<execution>
<id>generate-consumption</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputDirectory>${project.basedir}/edmx</inputDirectory>
<outputDirectory>${project.build.directory}/vdm</outputDirectory>
<deleteOutputDirectory>true</deleteOutputDirectory>
<packageName>com.mycompany.vdm</packageName>
<defaultBasePath>odata/v2/</defaultBasePath>
<compileScope>COMPILE</compileScope>
<serviceMethodsPerEntitySet>true</serviceMethodsPerEntitySet>
<!-- (Optional) You can add a custom copyright header:
<copyrightHeader>Copyright (c) this year, my company</copyrightHeader>
Or use the SAP copyright header:
<sapCopyrightHeader>true</sapCopyrightHeader>
-->
</configuration>
</execution>
</executions>
</plugin>
感觉您正在使用基于过时且已弃用的 SDK 版本的现有项目。您可以尝试生成一个新项目并从那里使用 maven 插件吗?
您还可以在 SAP API Business Hub 上检查您要使用的服务是否有预生成的客户端库。例如检查这个 https://api.sap.com/api/API_COSTCENTERACTIVITYTYPE_SRV/cloud-sdk/Java
我使用 Maven 插件生成了代码,但代码无法编译。 https://sap.github.io/cloud-sdk/docs/java/features/odata/generate-typed-odata-v2-and-v4-client-for-java 我正在使用 odata V2 插件
我不确定如何解决这个编译问题:
HttpClientAccessor 类型中的方法 getHttpClient(String) 不适用于参数 (HttpDestinationProperties)
这是我的 pom 文件。
com.sap.cloud.sdk.datamodel odata-generator-maven-plugin 3.59.0<dependency> <groupId>com.sap.cloud.s4hana.datamodel</groupId> <artifactId>odata-core</artifactId> <version>2.28.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency>
您指的是正确的文档,但版本号是您的 pom 不正确。
在文档中,它表示 3.x.x,截至 2022 年 12 月 10 日将是 3.59.0。
<plugin>
<groupId>com.sap.cloud.sdk.datamodel</groupId>
<artifactId>odata-generator-maven-plugin</artifactId>
<!-- Please use the latest version here-->
<version>3.XX.X</version>
<executions>
<execution>
<id>generate-consumption</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputDirectory>${project.basedir}/edmx</inputDirectory>
<outputDirectory>${project.build.directory}/vdm</outputDirectory>
<deleteOutputDirectory>true</deleteOutputDirectory>
<packageName>com.mycompany.vdm</packageName>
<defaultBasePath>odata/v2/</defaultBasePath>
<compileScope>COMPILE</compileScope>
<serviceMethodsPerEntitySet>true</serviceMethodsPerEntitySet>
<!-- (Optional) You can add a custom copyright header:
<copyrightHeader>Copyright (c) this year, my company</copyrightHeader>
Or use the SAP copyright header:
<sapCopyrightHeader>true</sapCopyrightHeader>
-->
</configuration>
</execution>
</executions>
</plugin>
感觉您正在使用基于过时且已弃用的 SDK 版本的现有项目。您可以尝试生成一个新项目并从那里使用 maven 插件吗?
您还可以在 SAP API Business Hub 上检查您要使用的服务是否有预生成的客户端库。例如检查这个 https://api.sap.com/api/API_COSTCENTERACTIVITYTYPE_SRV/cloud-sdk/Java