示例#1
0
  @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;
  }