in plugin/gradle/tooling/src/main/java/com/jetbrains/packagesearch/plugin/gradle/tooling/PackageSearchGradleModelBuilder.java [24:102]
public PackageSearchGradleJavaModel buildAll(
@NotNull String modelName,
@NotNull Project project,
@NotNull ModelBuilderContext context
) {
List<PackageSearchGradleJavaModel.Configuration> configurations =
new ArrayList<>(project.getConfigurations().size());
GradleVersion currentGradleVersion = GradleVersion.current();
for (Configuration configuration : project.getConfigurations()) {
List<PackageSearchGradleJavaModel.Dependency> dependencies =
new ArrayList<>(configuration.getDependencies().size());
for (Dependency dependency : configuration.getDependencies()) {
String group = dependency.getGroup();
String version = dependency.getVersion();
if (group == null || version == null) continue;
dependencies.add(new PackageSearchGradleJavaModelImpl.DependencyImpl(group, dependency.getName(), version));
}
boolean isCanBeDeclared = true;
if (currentGradleVersion.compareTo(GradleVersion.version("8.2")) >= 0) {
isCanBeDeclared = configuration.isCanBeDeclared();
}
configurations.add(
new PackageSearchGradleJavaModelImpl.ConfigurationImpl(
configuration.getName(),
dependencies,
configuration.isCanBeResolved(),
isCanBeDeclared,
configuration.isCanBeConsumed()
)
);
}
List<DeclaredRepository> repositories =
new ArrayList<>(project.getRepositories().size());
for (ArtifactRepository repository : project.getRepositories()) {
if (repository instanceof MavenArtifactRepository) {
MavenArtifactRepository mavenRepository = (MavenArtifactRepository) repository;
repositories.add(
new DeclaredRepositoryImpl(
mavenRepository.getUrl().toString(),
mavenRepository.getName()
)
);
}
}
String projectIdentityPath = currentGradleVersion.compareTo(GradleVersion.version("3.3")) >= 0 ?
((ProjectInternal) project).getIdentityPath().getPath() : project.getPath();
String buildFilePath = null;
if (project.getBuildFile().exists()) {
buildFilePath = project.getBuildFile().getAbsolutePath();
}
return new PackageSearchGradleJavaModelImpl(
project.getProjectDir().getAbsolutePath(),
project.getName(),
project.getRootProject().getName(),
projectIdentityPath,
configurations,
repositories,
project.getPluginManager().hasPlugin("org.gradle.java"),
project.getPluginManager().hasPlugin("org.jetbrains.amper.settings.plugin"),
project.getPluginManager().hasPlugin("org.jetbrains.kotlin.multiplatform"),
project.getPluginManager().hasPlugin("org.jetbrains.kotlin.android"),
buildFilePath,
project.getRootProject().getProjectDir().getAbsolutePath(),
currentGradleVersion.getVersion()
);
}