Eclipse 项目无法识别 Swagger Codegen 人工制品
Eclipse project does not recognize Swagger Codegen artefacts
我通过直接修改 pom.xml
文件将 Swagger Codegen 添加到我的 Eclipse 项目中:
<plugin>
<!--
Plugin that provides API-first development using swagger-codegen to
generate Spring-MVC endpoint stubs at compile time from a swagger definition file
-->
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${swagger-codegen-maven-plugin.version}</version>
<executions>
<execution>
<id>generate-swagger-javaclient</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/swagger/remote-api.json</inputSpec>
<language>java</language>
<apiPackage>com.myproj</apiPackage>
<modelPackage>com.myproj.model</modelPackage>
<generateSupportingFiles>true</generateSupportingFiles>
<generateApiTests>false</generateApiTests>
<configOptions>
<dateLibrary>java8</dateLibrary>
</configOptions>
<library>resttemplate</library>
</configuration>
</execution>
</executions>
</plugin>
如果我 运行 Maven 更新或 Maven generate-sources
目标,我会在我的 Eclipse 项目的 /target/generated-sources/swagger/src
文件夹中获得所有生成的工件。
但是,Eclipse 无法识别它们。我应该像一些普通人一样手动编辑我的 Eclipse 构建路径,还是 Eclipse 应该自动识别这个新的源文件夹?
目前的答案是,将生成的源文件夹添加到构建路径似乎是强制性的。
如果此插件本身不支持,您可以使用 build-helper-maven-plugin
将生成的源添加到您的构建路径。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/target/generated-sources/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
在 Eclipse 4.9.0 (2018-09) 中,我必须添加 generated-sources 文件夹作为项目的源文件夹,如下所示:
- 打开 "Navigator" 视图
- 浏览至 target/generated-sources(或生成源的任何文件夹)。
- right-click 在该文件夹上
- 单击 "Build Path" -> "Use as Source Folder"
Menu Tree Screenshot
没有解决 "Plugin execution not covered by lifecycle configuration" 问题。
Ctrl+shift+R
打开 'Open Resource' 对话框。
除了消息行 'Enter Resource name ....' 之外,还有一个下拉选项。
当你点击它时,你会得到 'show status' 、 'show derived sources' 等选项
您必须确保选中 'show derived sources'。
Eclipse 也将开始显示 swagger 生成的工件。
我通过直接修改 pom.xml
文件将 Swagger Codegen 添加到我的 Eclipse 项目中:
<plugin>
<!--
Plugin that provides API-first development using swagger-codegen to
generate Spring-MVC endpoint stubs at compile time from a swagger definition file
-->
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${swagger-codegen-maven-plugin.version}</version>
<executions>
<execution>
<id>generate-swagger-javaclient</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/swagger/remote-api.json</inputSpec>
<language>java</language>
<apiPackage>com.myproj</apiPackage>
<modelPackage>com.myproj.model</modelPackage>
<generateSupportingFiles>true</generateSupportingFiles>
<generateApiTests>false</generateApiTests>
<configOptions>
<dateLibrary>java8</dateLibrary>
</configOptions>
<library>resttemplate</library>
</configuration>
</execution>
</executions>
</plugin>
如果我 运行 Maven 更新或 Maven generate-sources
目标,我会在我的 Eclipse 项目的 /target/generated-sources/swagger/src
文件夹中获得所有生成的工件。
但是,Eclipse 无法识别它们。我应该像一些普通人一样手动编辑我的 Eclipse 构建路径,还是 Eclipse 应该自动识别这个新的源文件夹?
目前的答案是,将生成的源文件夹添加到构建路径似乎是强制性的。
如果此插件本身不支持,您可以使用 build-helper-maven-plugin
将生成的源添加到您的构建路径。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/target/generated-sources/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
在 Eclipse 4.9.0 (2018-09) 中,我必须添加 generated-sources 文件夹作为项目的源文件夹,如下所示:
- 打开 "Navigator" 视图
- 浏览至 target/generated-sources(或生成源的任何文件夹)。
- right-click 在该文件夹上
- 单击 "Build Path" -> "Use as Source Folder"
Menu Tree Screenshot
没有解决 "Plugin execution not covered by lifecycle configuration" 问题。
Ctrl+shift+R
打开 'Open Resource' 对话框。 除了消息行 'Enter Resource name ....' 之外,还有一个下拉选项。 当你点击它时,你会得到 'show status' 、 'show derived sources' 等选项
您必须确保选中 'show derived sources'。 Eclipse 也将开始显示 swagger 生成的工件。