use only own configuration artifacts for project dependencies IDEA-181187

Inherited artifacts may be produced by other source sets output and should be tracked separately
This commit is contained in:
Nikita Skvortsov
2019-03-25 19:06:42 +03:00
parent 91203053f4
commit a54fab9bb8
2 changed files with 10 additions and 10 deletions
@@ -892,19 +892,19 @@ public class GradleDependenciesImportingTest extends GradleImportingTestCase {
.withJavaPlugin()
.addPostfix(
"configurations {",
" parentCfg",
" compile.extendsFrom parentCfg",
" aParentCfg",
" compile.extendsFrom aParentCfg",
"}",
"sourceSets {",
" parentSrc { java.srcDirs = ['src/parent/java'] }",
" main { java { compileClasspath += parentSrc.output } }",
" aParentSrc { java.srcDirs = ['src/aParent/java'] }",
" main { java { compileClasspath += aParentSrc.output } }",
"}",
"task parentSrcJar(type:Jar) {",
"task aParentSrcJar(type:Jar) {",
" appendix 'parent'",
" from sourceSets.parentSrc.output",
" from sourceSets.aParentSrc.output",
"}",
"artifacts {",
" parentCfg parentSrcJar",
" aParentCfg aParentSrcJar",
"}"
)
.generate()
@@ -920,10 +920,10 @@ public class GradleDependenciesImportingTest extends GradleImportingTestCase {
importProject("");
assertModules("project",
"project.project1", "project.project1.main", "project.project1.test", "project.project1.parentSrc",
"project.project1", "project.project1.main", "project.project1.test", "project.project1.aParentSrc",
"project.project2", "project.project2.main", "project.project2.test");
assertModuleModuleDeps("project.project2.main", "project.project1.main", "project.project1.parentSrc");
assertModuleModuleDeps("project.project2.main", "project.project1.main", "project.project1.aParentSrc");
}
@@ -129,7 +129,7 @@ class ExternalProjectBuilderImpl implements ModelBuilderService {
def configurationsByName = project.getConfigurations().getAsMap()
Map<String, Set<File>> artifactsByConfiguration = new HashMap<String, Set<File>>()
for (Map.Entry<String, Configuration> configurationEntry : configurationsByName.entrySet()) {
Set<File> files = configurationEntry.getValue().getAllArtifacts().getFiles().getFiles()
Set<File> files = configurationEntry.getValue().getArtifacts().getFiles().getFiles()
artifactsByConfiguration.put(configurationEntry.getKey(), new LinkedHashSet<>(files))
}
externalProject.setArtifactsByConfiguration(artifactsByConfiguration)