2013-02-12 148 views
1

我想使用maven-assembly-plugin生成zip文件組件。我只剩下兩個問題了,我想知道是否可以用配置來解決,但作爲最後的手段,我也在考慮編寫我自己的maven插件來擴展maven-assembly-plugin擴展maven插件

兩個失蹤作品是

  1. 把每個匹配包含模式到自己outputDirectory依賴。
    這是我的組裝

    <moduleSet> 
        <binaries> 
         <dependencySets> 
          <dependencySet> 
           <outputDirectory>module</outputDirectory> 
           <useTransitiveDependencies>false</useTransitiveDependencies> 
           <includes> 
            <include>com.test.feature.*:*:jar</include> 
           </includes> 
          </dependencySet> 
         </dependencySets> 
         <unpack>false</unpack> 
        </binaries> 
    </moduleSet> 
    

    這將使模塊的所有依賴與com.test.feature.*一個的groupId一個名爲模塊文件夾中的相關部分。這對我的作品,像這樣

    module/ 
        com.test.feature.firstModule.jar 
        com.test.feature.secondModule.jar 
    

    我需要的是給每個匹配依賴移動到它自己的文件夾的方式,希望其中的文件夾名稱是依賴的的artifactId(不是強制性的,雖然)

    firstModule/ 
        com.test.feature.firstModule.jar 
    secondModule/ 
        com.test.feature.secondModule.jar 
    

    我知道我可以爲每個依賴創建一個dependencySet,但是我們的想法是儘可能做到面向未來。如果我爲每個創建一個,我將需要記住將來爲com.test.feature下的每個新工件創建一個新集。我最大的(但盲目的)希望是某種屬性$ {dependencyName}的,將被替換每個依存性,然後我可以在outputDirectory

  2. 使用生成有關的依賴關係和他們的文件夾信息的XML文件
    類似

    <module dir="firstModule" version="1.0-SNAPSHOT /> 
    <module dir="secondModule" version="2.1-SNAPSHOT /> 
    

    生成的XML將是拉鍊組件的一部分

鈣這兩件事情,或其中之一,是用香草組裝插件完成的?如果沒有,是否可以創建一個擴展另一個插件?我剛纔看到教程創建插件的from scratch,永遠只是功能添加到標準的插件之一

回答

0

Q1: 使用artifactId爲的PARF OT outputDirectory值:

<outputDirectory>module/${artifact.artifactId}</outputDirectory> 

Q2: 我認爲沒有現成的解決方案。寫你自己的插件;)