Creating marketplace package with variables in install.xml

Making a package for the marketplace, I'm trying the following syntax, with no success <update file=“${package.root}/bundles/my-super-bundle-${property-from-pom.version}” todir=“${env.bundles}” overwrite=“true” />

But it works if I use <update file=“${package.root}/bundles/my-super-bundle-1.0.0” todir=“${env.bundles}” overwrite=“true” />

As my bundle contains a few jar, I'd like to be able to define my version number in one place (the pom.xml file) and reuse it in assembly.xml and install.xml. Is there a way/syntax to do it or do I have to revert to replacement with the maven filtering mechanism?


0 votes

1 answers



I recommend to assemble the Marketplace package using nuxeo-distribution-tools.

You can give a look at nuxeo-marketplace-dm to see how it's done for Nuxeo DM Marketplace package.

About your question, you could use Ant replacement with Maven variables (thanks to nuxeo-distribution-tools) but note the update command accepts a directory as input: you don't need to list each bundle with its precise name, simply provide the directory containing the bundles you want to be deployed by your package.

1 votes

We are using the nuxeo-distribution-tools.

But missed the &lt;filter token="VERSION" … &gt; in the assembly.xml file. Information overload I guess.

Looking at nuxeo-marketplace-dm example made me realise it.



Note the Marketplace package build is using a comparison between the two EAR-like artifacts nuxeo-distribution-cap and nuxeo-distribution-dm.

Following such a process helps to maintain the packaging (for instance, you would build a comparison between your customized EAR-like and CAP). If doing so, you may need to know the artifact:nuxeo-expand task accepts some parameters, especially when working with artifacts which groupId is different than org.nuxeo.* you have to specify non filtered out groupId prefixes with the groupPrefixes parameter.