如何通过settings.xml token用OpenAPI Generator拉取私有GitHub的OpenAPI YAML
实现从settings.xml读取凭证拉取私有GitHub的OpenAPI文件
1. 在Maven settings.xml中配置GitHub私有仓库凭证
打开你的Maven全局或用户级settings.xml(通常路径为~/.m2/settings.xml或Maven安装目录下的conf/settings.xml),添加如下服务器配置:
<servers> <server> <!-- 自定义server ID,后续pom配置需与该ID对应 --> <id>github-private-repo</id> <!-- 你的GitHub用户名 --> <username>your-github-username</username> <!-- GitHub个人访问令牌(PAT),创建时需勾选`repo`权限 --> <password>your-github-personal-access-token</password> </server> </servers>
注意:GitHub已不再支持用账号密码直接访问私有仓库API,必须使用个人访问令牌(PAT)。
2. 修改pom.xml中的openapi-generator-maven-plugin配置
在插件的<configuration>节点内添加serverId参数,指定你在settings.xml中配置的server ID,同时将inputSpec替换为私有仓库的OpenAPI文件raw链接:
<plugin> <artifactId>openapi-generator-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 保留原有配置项 --> <configOptions> <apiPackage>com.core.client</apiPackage> <dateLibrary>java8</dateLibrary> <modelPackage>com.core.client.model</modelPackage> <packageName>co.core</packageName> <sourceFolder>restclient</sourceFolder> <useLombok>true</useLombok> <useOptional>true</useOptional> <useTags>true</useTags> </configOptions> <generateApiDocumentation>false</generateApiDocumentation> <generateApiTests>false</generateApiTests> <generateModelDocumentation>false</generateModelDocumentation> <generateModelTests>false</generateModelTests> <generatorName>java</generatorName> <!-- 替换为你的私有仓库OpenAPI文件raw链接 --> <inputSpec>https://raw.githubusercontent.com/your-username/your-private-repo/main/path/to/openapi.yaml</inputSpec> <library>jersey2</library> <!-- 添加该行,关联settings.xml中的server配置 --> <serverId>github-private-repo</serverId> </configuration> <goals> <goal>generate</goal> </goals> <id>Generate client</id> </execution> </executions> <groupId>org.openapitools</groupId> <version>6.2.1</version> </plugin>
3. 验证执行
运行Maven生成命令:
mvn clean generate-sources
插件会自动从settings.xml读取指定server的凭证,安全访问私有GitHub仓库的OpenAPI文件,无需在pom.xml中暴露敏感信息。
若要进一步提升安全性,还可以使用Maven的加密机制对settings.xml中的password字段进行加密。
内容的提问来源于stack exchange,提问作者Nitish Agarwal
相关产品推荐
相关产品推荐

