@Override protected Collection<DependencySeed> publishContent(PublisherService publisherService) throws MojoExecutionException, MojoFailureException { List<DependencySeed> result = new ArrayList<DependencySeed>(); for (File producFile : getEclipseRepositoryProject().getProductFiles(getProject())) { try { ProductConfiguration productConfiguration = ProductConfiguration.read(producFile); if (productConfiguration.getId() == null) { throw new MojoExecutionException( "The product file " + producFile.getName() + " does not contain the mandatory attribute 'uid'"); } qualifyVersions(productConfiguration, getQualifier()); TychoInterpolator interpolator = new org.eclipse.tycho.core.maven.TychoInterpolator(getSession(), getProject()); interpolateProperties(productConfiguration, interpolator); extractRootFeatures(productConfiguration, result); final File preparedProductFile = writeProductForPublishing(producFile, productConfiguration, getBuildDirectory()); Collection<DependencySeed> seeds = publisherService.publishProduct( preparedProductFile, productConfiguration.includeLaunchers() ? getEquinoxExecutableFeature() : null, flavor); result.addAll(seeds); } catch (FacadeException e) { throw new MojoExecutionException( "Exception while publishing product " + producFile.getAbsolutePath(), e); } catch (IOException e) { throw new MojoExecutionException( "I/O exception while writing product definition or copying launcher icons", e); } } return result; }