Я хотел бы, чтобы лучше понять, как Maven сделок с ресурсами и, в частности, как модули могут повторно использовать Resources
инфраструктуру, Maven обеспечивает:Maven Ресурсы и докер-Maven-плагин
Я уже прочитал в разделе Ресурсы Maven и посмотрел на Maven Resources Plugin.
Теперь я наткнулся на Docker Maven Plugin от Spotify. Который содержит следующий раздел конфигурации:
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
Глядя на Readme плагина я не мог найти какие-либо объяснений, которые дочерние элементы разрешенные для <resource>
элемента. Я принимаю, что элемент <resource>
действительно связан с классом Maven org.apache.maven.model.Resource
и что я могу просто повторно использовать документацию Maven, чтобы понять, кто это работает. Но в соответствии с документацией Maven, приведенной выше, кажется, что элементы <include>
должны быть вложены в элемент <includes>
, который не указан в приведенном выше списке. Теперь я смущен.
Подводя итоги: Где я могу найти окончательный ответ, если плагин точно не документирует, как работает его конфигурация. Существует ли какая-то ссылка на схему XML для плагинов, где я могу найти, как работают определенные элементы?
мне нужно способ скопировать встроенный «jar» artifect в изображение докера без жесткого кодирования версии внутри «Dockerfile». Поэтому в моем 'src/main/docker/Dockerfile' я написал:« ADD backend- @ project.version @ .jar app.jar', а затем использовал плагин ресурсов Maven для создания нового 'docker/Dockerfile' в' target' , Это приводит, например, к следующей строке в финальном файле Docker: 'ADD backend-0.5.5.jar app.jar'. Я установил '' для: '$ {project.build.directory}/docker'. Без этого вам нужно будет прикоснуться к файлу докеров каждый раз, когда вы набросаете номер версии вашего программного обеспечения. –
lanoxx