2012-12-19 109 views
1

配置文件,這是我的項目結構:的Maven Assembly插件:包括從模塊

myapp-parent 
    moduleMain 
     src/main/java ---> main class (it loads a spring context) 
     src/main/config ---> main config files 
    module1 
     src/main/java ---> specific code of the module 
     src/main/config ---> specific config files of the module 

我使用的組裝和appassembler Maven插件的分佈。這是組件描述符:

<assembly> 
<id>archive</id> 
<formats> 
    <format>zip</format> 
    <format>tar.gz</format> 
</formats> 

    <fileSets> 
    <fileSet> 
     <directory>${project.build.directory}/generated-resources/appassembler/jsw/myProject/bin</directory> 
     <outputDirectory>bin</outputDirectory> 
     <includes> 
      <include>**</include> 
     </includes> 
     <useDefaultExcludes>true</useDefaultExcludes> 
     <fileMode>0755</fileMode> 
     <directoryMode>0755</directoryMode> 
    </fileSet> 

    <fileSet> 
     <directory>src/main/config</directory> 
     <outputDirectory>conf</outputDirectory> 
    </fileSet> 

    <fileSet> 
     <directory>${project.build.directory}/generated-resources/appassembler/jsw/myProject/conf</directory> 
     <outputDirectory>conf</outputDirectory> 
    </fileSet> 

    <fileSet> 
     <directory>${project.build.directory}/generated-resources/appassembler/jsw/myProject/lib</directory> 
     <outputDirectory>lib</outputDirectory> 
    </fileSet> 
</fileSets> 
</assembly> 

因此我得到一個分發包,它包括一個配置文件夾(「CONF」)。 問題是該目錄中的配置文件來自mainModule,我希望從module1獲得的配置文件也將位於相同的位置。

myProject.tar.gz 
    bin 
    lib 
    logs 
    conf --> Here we have config files from modeuleMain & module1 

任何想法???

回答

2

你可能想看看在裝配描述的<moduleSet/>,特別是配置<sources/>小節:ModuleSet Source-Inclusion Example

注:這隻會方式讓你部分的解決方案本身!問題是程序集插件的moduleSets函數最初設計用於僅在當前項目(創建程序集的那個)的子模塊上運行。爲了解決這個問題,我們在Assembly插件的2.2版本或其附近引入了一個新配置,稱爲<useAllReactorProjects/>。將此標誌設置爲true,可使當前版本中的所有模塊都可用於程序集。

如果你在你的moduleSet中啓用它,你應該能夠包含來自module1的配置文件。

+0

明白了! 是解決方案的關鍵....謝謝!做得好!! – Curro