Pow*_*tat 2 maven npm typescript angular openapi-generator
我正在typescript-angular使用 openapi-generator-maven-plugin生成代码,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/../my_server/openapi.json</inputSpec>
<generatorName>typescript-angular</generatorName>
<output>${project.basedir}</output>
<npmName>myClientRest</npmName>
<npmRepository>http://localhost:8444/repository/npm-releases/</npmRepository>
<providedInRoot>true</providedInRoot>
<apiModulePrefix>my</apiModulePrefix>
<stringEnums>true</stringEnums>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
我现在缺少的是一个package.json文件,以便我可以执行npm install. 从一些较旧的 swagger 示例中,看起来使用 swagger 插件package.json生成了一个文件。
所以我的问题是为什么package.json没有生成文件,我该怎么做才能得到一个?
生成器运行的输出对我来说看起来不错:
[信息] --- openapi-generator-maven-plugin:4.2.0:generate (default) @ client ---
[信息] OpenAPI 生成器:typescript-angular(客户端)
[信息] 生成器“typescript-angular”被认为是稳定的。
[信息] 提示:未定义环境变量“TS_POST_PROCESS_FILE”(可选)。例如要格式化源代码,请尝试'export TS_POST_PROCESS_FILE="/usr/local/bin/prettier --write"' (Linux/Mac)
[INFO] 注意:要启用文件后处理,'enablePostProcessFile' 必须设置为
true(--enable-post-process-file for CLI)。[信息] 为 Angular 8.0.0 生成代码...
[INFO](您可以通过设置 additionalProperty ngVersion 来选择角度版本)
[信息] 写入文件 C:\my-client-rest\api\default.service.ts
[信息] 写入文件 C:\my-client-rest\model\models.ts
[INFO] 写入文件 C:\my-client-rest\api\api.ts
[信息] 写入文件 C:\my-client-rest\index.ts
[信息] 写入文件 C:\my-client-rest\api.module.ts
[信息] 写入文件 C:\my-client-rest\configuration.ts
[信息] 写入文件 C:\my-client-rest\variables.ts
[信息] 写入文件 C:\my-client-rest\encoder.ts
[信息] 写入文件 C:\my-client-rest.gitignore
[信息] 写入文件 C:\my-client-rest\git_push.sh
[信息] 写入文件 C:\my-client-rest\README.md
[信息] 写入文件 C:\my-client-rest.openapi-generator\VERSION
看起来插件的描述不是很清楚(至少对我来说),因为它似乎是:
<configuration>
<npmName>myClientRest</npmName>
</configuration>
Run Code Online (Sandbox Code Playgroud)
是错误的,应替换为:
<configuration>
<additionalProperties>npmName=myClientRest</additionalProperties>
</configuration>
Run Code Online (Sandbox Code Playgroud)
或与:
<configuration>
<configOptions>
<npmName>tmsClientRest</npmName>
</configOptions>
</configuration>
Run Code Online (Sandbox Code Playgroud)
使 package.json 和 tsconfig.json 的生成工作。
所以我原来的例子应该改为:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/../my_server/openapi.json</inputSpec>
<generatorName>typescript-angular</generatorName>
<output>${project.basedir}</output>
<configOptions>
<npmName>tmsClientRest</npmName>
<npmRepository>http://www.test-tms-archiv-net.de:8444/repository/npm-releases/</npmRepository>
<providedInRoot>true</providedInRoot>
<apiModulePrefix>tms</apiModulePrefix>
<stringEnums>true</stringEnums>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)