我使用Fabric8 Maven工具链在Openshift上构建和部署我的Camel应用程序。我使用Camel Boot方法...我的Mvn配置文件执行以下目标:clean install docker:build fabric8:json fabric8:appl
。
一切都好!除了我使用index.html
作为Camel路线应用程序的一部分提供静态文件(Jetty
)。该文件位于$MY_PROJECT_DIR/src/main/resources
。因此,它会在正常mvn build
之后进入应用程序的类路径。但是当使用fabric8
构建工作流时,我的应用程序(Camel路由)无法在文件系统类路径上找到静态内容?
如何指定fabric8插件来复制最终构建映像的/deployments
内的静态内容?因此我的camel端点可以在文件系统上引用它。我正在寻找类似maven-resources-plugin
的内容。
答案 0 :(得分:1)
好吧,深入研究src代码我发现你有两个选择来实现这个目标......
<强> HAWT-APP-行家-插件强>
如果您使用hawt-app-maven-plugin
[1],就像我一样,您可以使用hawt-app.source
配置属性
在打包/构建过程中,src/main/hawt-app
中指定的目录(默认为hawt-app.source
)的所有内容都将复制到${project.build.directory}/hawt-app/
。
<强>搬运工-行家-插件强>
使用fabric8的docker-maven-plugin
程序集配置[2],您可以传递自定义maven程序集描述符。像这样:
项目的 pom.xml
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<configuration>
<images>
<image>
<name>${docker.image}</name>
<build>
<from>${docker.from}</from>
<assembly>
<basedir>/deployments</basedir>
<!-- descriptorRef>hawt-app</descriptorRef -->
<descriptor>${project.basedir}/src/main/resources/hawt-app-custom-assembly.xml</descriptor>
</assembly>
<强> HAWT-APP-定制assembly.xml 强>
<assembly ...>
<id>hawt-app</id>
<fileSets>
<fileSet>
<includes>
<include>bin/*</include>
</includes>
<directory>${project.build.directory}/hawt-app</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<includes>
<include>lib/*</include>
</includes>
<directory>${project.build.directory}/hawt-app</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
<!-- assembly extention... -->
<fileSet>
<includes>
<include>static-content/*</include>
</includes>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
</assembly>
[1] https://github.com/fabric8io/fabric8/tree/master/hawt-app-maven-plugin
[2] https://maven.fabric8.io/#fabric8:build
[3] http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html