Один html файл чванства - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь создать один файл swagger-ui html из набора html, js, json и изображений, поэтому мне нужно заменить ссылки на эти внешние файлы их содержимым. Я знаю, что есть такие инструменты, например, здесь: https://github.com/Y2Z/monolith, но я бы хотел, чтобы он автоматически запускался при сборке. Вы знаете какой-нибудь плагин Maven для этого? Я знаю, что его можно заменить, как здесь Swagger, один интерактивный html, но я не знаю, как автоматизировать его в сборке Maven. У меня есть веб-приложение springboot.

РЕДАКТИРОВАТЬ: Для тех, кто пришел сюда с той же проблемой, я нашел решение. Плагин Ant позволяет загружать содержимое файла в свойство и использовать его позже в задаче замены. Так что я просто автоматизировал это. В этом случае цель муравья выглядит так:

 <execution>
                        <id>swagger-ui-gen</id>
                        <phase>process-resources</phase>
                        <configuration>
                            <target>
                                <loadfile property="swagger-json" srcFile="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/swagger.json"/>
                                <loadfile property="swagger-ui-css" srcFile="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/swagger-ui.css"/>
                                <loadfile property="swagger-ui-bundle-json" srcFile="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/swagger-ui-bundle.js"/>
                                <loadfile property="swagger-ui-standalone-preset-json" srcFile="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/swagger-ui-standalone-preset.js"/>

                                <replace file="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html" token="url" value="spec"/>
                                <replace file="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html" token="&quot;https://petstore.swagger.io/v2/swagger.json&quot;" value="${swagger-json}"/>
                                <replace file="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html" token="&lt;script src=&quot;./swagger-ui-bundle.js&quot;&gt; &lt;/script&gt;" value="&lt;script&gt;${swagger-ui-bundle-json}&lt;/script&gt;"/>
                                <replace file="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html" token="&lt;script src=&quot;./swagger-ui-standalone-preset.js&quot;&gt; &lt;/script&gt;" value="&lt;script&gt;${swagger-ui-standalone-preset-json}&lt;/script&gt;"/>
                                <replace file="${project.build.directory}/classes/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html" token="&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;./swagger-ui.css&quot; &gt;" value="&lt;style&gt;${swagger-ui-css}&lt;/style&gt;"/>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
...