2017-04-12 7 views
1

내 프로젝트의 번들 모듈에 resource 디렉토리에 내 샘플 startup.cfg 파일이 있습니다. 이 파일에는 시작시 사용할 속성이 들어 있습니다. 번들 pom.xml에 다음과 같은 내용이 있습니다. 내가 가진 Karaf에 대한 기능 설치 또는 설치 전 또는 설치 전에 구성 파일 만들기

<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의

,,, 내가 추가 한 기능 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> 

,

<dependency> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>service.implementation</artifactId> 
    <version>${project.version}</version> 
    <classifier>config</classifier> 
    <type>cfg</type> 
</dependency> 

이 기능은 너무 시동 기능입니다. 이제 karaf 컨테이너에 기능을 설치하거나이 경우 카라프를 위로 돌릴 때 etc/org.sample.app.startup.cfg 만 생성됩니다. 내 목표는 간단하다.이 conf 파일은 기능이 설치되어 있지 않고 항상 etc/에 있어야한다.

+0

나는 이해할 수 없다. 기능을 설치했지만 설정 파일이 생성되지 않았다면 카라프를 시작할 수 있습니까? 게시 된 기능의 형식이 틀린 것 같습니다. 배포 된 feature.xml의 정확한 내용을 Maven 저장소에 붙여 넣을 수 있습니까? –

+0

아마도 maven 어셈블리 플러그인이 도움이 될 것입니다 (http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html). –

답변

0

cfg 파일은 기능을 설치할 때 etc 폴더에 배포됩니다. 이 기능이 설치되어 있는지 여부와 관계없이이 기능이 설치되기를 원하면이 기능을 수동으로 배포해야한다는 것을 의미합니다.이 기능은 cfg에서 수행 한 것처럼 이슈에 cfg를 첨부 한 후 더 간단합니다.

최상의 프로덕션 (특히 프로덕션 환경에서)을 수행하려면 cfg 배치를 원래 기능과 분리하지 마십시오.