
com.prezi.pride.projectmodel.PrideProjectModelBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-pride-projectmodel-plugin Show documentation
Show all versions of gradle-pride-projectmodel-plugin Show documentation
Pride manages multiple Gradle modules as a single Gradle project
package com.prezi.pride.projectmodel;
import com.google.common.collect.ImmutableSet;
import org.gradle.api.Project;
import org.gradle.tooling.provider.model.ToolingModelBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PrideProjectModelBuilder implements ToolingModelBuilder {
private static final Logger logger = LoggerFactory.getLogger(PrideProjectModelBuilder.class);
@Override
public boolean canBuild(String modelName) {
return modelName.equals(PrideProjectModel.class.getName());
}
@Override
public Object buildAll(String s, Project project) {
return convertProject(project.getRootProject());
}
private PrideProjectModel convertProject(Project project) {
ImmutableSet.Builder childModels = ImmutableSet.builder();
for (Project childProject : project.getChildProjects().values()) {
childModels.add(convertProject(childProject));
}
if (project.getGroup() == null || String.valueOf(project.getGroup()).isEmpty()) {
throw new IllegalStateException("Group is not specified for project in " + project.getProjectDir());
}
return new DefaultPrideProjectModel(
project.getPath(),
String.valueOf(project.getGroup()),
project.getName(),
String.valueOf(project.getVersion()),
childModels.build(),
project.getProjectDir().getAbsolutePath()
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy