use of org.gradle.api.tasks.bundling.Tar in project gradle by gradle.
the class PublishArtifactToFileBuildOutcomeTransformer method getTypeIdentifier.
private String getTypeIdentifier(PublishArtifact artifact) {
if (artifact instanceof ArchivePublishArtifact) {
ArchivePublishArtifact publishArtifact = (ArchivePublishArtifact) artifact;
AbstractArchiveTask task = publishArtifact.getArchiveTask();
if (task instanceof War) {
return WAR_ARTIFACT.getTypeIdentifier();
} else if (task instanceof Ear) {
return EAR_ARTIFACT.getTypeIdentifier();
} else if (task instanceof Jar) {
return JAR_ARTIFACT.getTypeIdentifier();
} else if (task instanceof Zip) {
return ZIP_ARTIFACT.getTypeIdentifier();
} else if (task instanceof Tar) {
return TAR_ARTIFACT.getTypeIdentifier();
} else {
// we don't know about this kind of archive task
return ARCHIVE_ARTIFACT.getTypeIdentifier();
}
} else {
// The client may try to infer from the file extension.
return UNKNOWN_ARTIFACT.getTypeIdentifier();
}
}
use of org.gradle.api.tasks.bundling.Tar in project gradle by gradle.
the class PlayDistributionPlugin method createDistributionZipTasks.
@Mutate
void createDistributionZipTasks(ModelMap<Task> tasks, @Path("buildDir") final File buildDir, PlayDistributionContainer distributions) {
for (final PlayDistribution distribution : distributions.withType(PlayDistribution.class)) {
String capitalizedDistName = StringUtils.capitalize(distribution.getName());
final String stageTaskName = "stage" + capitalizedDistName + "Dist";
final File stageDir = new File(buildDir, "stage");
final String baseName = StringUtils.isNotEmpty(distribution.getBaseName()) ? distribution.getBaseName() : distribution.getName();
tasks.create(stageTaskName, Sync.class, new Action<Sync>() {
@Override
public void execute(Sync sync) {
sync.setDescription("Copies the '" + distribution.getName() + "' distribution to a staging directory.");
sync.setDestinationDir(stageDir);
CopySpecInternal baseSpec = sync.getRootSpec().addChild();
baseSpec.into(baseName);
baseSpec.with(distribution.getContents());
}
});
tasks.named(STAGE_LIFECYCLE_TASK_NAME, new Action<Task>() {
@Override
public void execute(Task task) {
task.dependsOn(stageTaskName);
}
});
final Task stageTask = tasks.get(stageTaskName);
final String distributionZipTaskName = "create" + capitalizedDistName + "ZipDist";
tasks.create(distributionZipTaskName, Zip.class, new Action<Zip>() {
@Override
public void execute(final Zip zip) {
zip.setDescription("Packages the '" + distribution.getName() + "' distribution as a zip file.");
zip.setBaseName(baseName);
zip.setDestinationDir(new File(buildDir, "distributions"));
zip.from(stageTask);
}
});
final String distributionTarTaskName = "create" + capitalizedDistName + "TarDist";
tasks.create(distributionTarTaskName, Tar.class, new Action<Tar>() {
@Override
public void execute(final Tar tar) {
tar.setDescription("Packages the '" + distribution.getName() + "' distribution as a tar file.");
tar.setBaseName(baseName);
tar.setDestinationDir(new File(buildDir, "distributions"));
tar.from(stageTask);
}
});
tasks.named(distributionTarTaskName, DistributionArchiveRules.class);
tasks.named(distributionZipTaskName, DistributionArchiveRules.class);
tasks.named(DIST_LIFECYCLE_TASK_NAME, new Action<Task>() {
@Override
public void execute(Task task) {
task.dependsOn(distributionZipTaskName, distributionTarTaskName);
}
});
}
}
Aggregations