2016-04-29 67 views
0

在ivysettings.xml我有神器以下解析:如何使用配置常春藤解析模式

<resolvers> 
    <url name="shared" m2compatible="true"> 
     <artifact pattern="${ivy.shared.default.root}/[orgPath]/[module]/[revision]/[module]-[revision]-[conf].[ext]" /> 
    </url> 
    </resolvers> 

我ivy.xml文件有兩種配置和兩種出版物:

<configurations> 
    <conf name="debug"/> 
    <conf name="release"/> 
    </configurations> 

    <publications> 
    <artifact name="project-debug" type="zip" conf="debug" ext="zip" /> 
    <artifact name="project-release" type="zip" conf="release" ext="zip"/> 
    </publications> 

在build.xml中,我使用常青藤:發佈:

<target name="publish" "description="--> publish the project in the ivy repository"> 
    <property name="revision" value="${project.revision}"/> 
    <ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
     resolver="shared" 
     pubrevision="${revision}" 
    /> 
</target> 

發佈的工件的文件名不是我想要的ECT:

project-1.0-default.zip 

我希望兩個文件:

project-1.0-release.zip 
project-1.0-debug.zip 

請注意,我不能使用以下模式:

${ivy.shared.default.root}/[orgPath]/[module]/[revision]/[artifact]-[revision].[ext] 

這是因爲庫我必須使用(Archiva)要求工件的形式爲[模塊] - [修訂] -...否則我們得到如下例外:

Not a valid artifact path in a Maven 2 repository, filename 'project-debug-1.0.zip' doesn't contain version '1.0'. 

回答

0

更新答案

看看你的解析器第二次看:

<resolvers> 
    <url....> 
    <artifact pattern="....../[module]-[revision]-[conf].[ext]" /> 
    </url> 
</resolvers> 

兩個出版文物將解析爲相同的名稱(因爲它們共享相同的模塊和相同的發佈配置「默認」 )。

儘量不要使用以下arifact模式:

<artifact pattern="....../[artifact]-[revision].[ext]" /> 

這應該產生以下發布的文件:如果你想額外的可選屬性添加到文件名

project-debug-1.0.zip 
project-release-1.0.zip 

考慮使用extra attributes,例如:

老答案

多少個文件就您的構建產生? 神器模式參數暗示只有一個文件?

<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 

這將解釋爲什麼發佈單個文件。

有關如何發佈多個人工製品使用常春藤例子:

+0

我不認爲這是正確的。發佈任務確實嘗試發佈兩個工件: [ivy:publish]發佈了project-debug到http://.../project-9.0-default.zip [ivy:publish]發佈了項目發佈到http: //.../project-9.0-default.zip 雖然我期望: [ivy:publish]發佈了項目調試到http://.../project-9.0-**debug**。 zip [ivy:publish]發佈的項目發佈到http://.../project-9.0-**release**.zip – Roel

+0

@RoelVZ更新回答 –