private string BuildPlugin(RoslynPluginDefinition definition, string outputDirectory)
{
this.logger.LogInfo(UIResources.APG_GeneratingPlugin);
// Make the .jar name match the format [artefactid]-[version].jar
// i.e. the format expected by Maven
Directory.CreateDirectory(outputDirectory);
string fullJarPath = Path.Combine(outputDirectory,
definition.Manifest.Key + "-plugin-" + definition.Manifest.Version + ".jar");
string repositoryId = RepositoryKeyUtilities.GetValidKey(definition.PackageId + "." + definition.Language);
string repoKey = RepositoryKeyPrefix + repositoryId;
RoslynPluginJarBuilder builder = new RoslynPluginJarBuilder(logger);
builder.SetLanguage(definition.Language)
.SetRepositoryKey(repoKey)
.SetRepositoryName(definition.Manifest.Name)
.SetRulesFilePath(definition.RulesFilePath)
.SetPluginManifestProperties(definition.Manifest)
.SetJarFilePath(fullJarPath);
if (!string.IsNullOrWhiteSpace(definition.SqaleFilePath))
{
builder.SetSqaleFilePath(definition.SqaleFilePath);
}
AddRoslynMetadata(builder, definition, repositoryId);
string relativeStaticFilePath = "static/" + Path.GetFileName(definition.StaticResourceName);
builder.AddResourceFile(definition.SourceZipFilePath, relativeStaticFilePath);
builder.Build();
return fullJarPath;
}