在我的项目中,在resource
目录的bundle模块中,我有一个示例startup.cfg
文件。此文件包含我要在启动时使用的属性。在捆绑pom.xml
中,我有以下内容。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/classes/startup.cfg</file>
<type>cfg</type>
<classifier>config</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
在我的功能xml中,我有,
<feature name="my-sample-feature" description="Sample service" version='${project.version}'>
<bundle>mvn:org.sample.app/service.implementation/{{VERSION}}</bundle>
<configfile finalname="/etc/org.sample.app.startup.cfg">mvn:mvn:org.sample.app/service.implementation/{{VERSION}}/cfg/config</configfile>
</feature>
在功能xml中,我添加了
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>service.implementation</artifactId>
<version>${project.version}</version>
<classifier>config</classifier>
<type>cfg</type>
</dependency>
此功能也是一项启动功能。现在,当我在karaf容器中安装该功能时,或者在我旋转karaf的情况下,只有这时才创建etc/org.sample.app.startup.cfg
。我的目标很简单,只需要安装此特殊文件,而不管是否安装此功能,该文件始终位于etc/
。
答案 0 :(得分:0)
安装此功能时,cfg文件将部署到etc文件夹中。如果你希望它独立于安装或不安装的功能,这意味着你必须手动将其部署到等等,这就像你在你的pom中一样将cfg附加到你的工件后更简单。
请记住,如果您想要遵循最佳实践(特别是在生产环境中),请不要将cfg部署与其原始功能分开。