Details
-
Type:
Bug
-
Status:
Open
-
Resolution: Unresolved
-
Affects Version/s: 1.0-milestone-3
-
Fix Version/s: None
Description
Problem manifests itself in this project http://static.springsource.org/spring-security/site/source.html
When this project is imported into STS Gradle tooling, it produces an invalid classpath for some of the subprojects.
The error is as follows:
msg :The container 'Gradle Dependencies' references non existing library '.../spring-security/core/build/classes/test' project: spring-security-web
This message seems to be caused by the following lines in the projects buid file:
dependencies {
...
testCompile project(':spring-security-core').sourceSets.test.classes,
...
}
Workaround, replace the above with
dependencies { ... testCompile project(':spring-security-core'), ... }
Issue Links
- Duplicated by
-
GRADLE-1116
IDEA/Eclipse plugins should replace all classpath references to a project's classes/test classes directory with a project dependency
-
I can see two ways forward towards fixing this problem. The easiest is probably to aproximate dependencies like these as dependencies on the project that contains the respective source set.
Another possiblity is that Gradle tooling api provide information on output folders associated with source folders (currently no such information is provided, so I'm setting all output folder to the Eclipse default).
Then ensure that sourceSet.classes returns the same output folder as was associated with the sourcefolder.
I'm not so sure how well this will work in Eclipse, I don't think it is generally a good idea to have one project depend on binary class folder in another project. This tends to lead to problem with build mechanics/ordering and trouble associating source code with the class files.
So I think remapping it as a project dependency is probably best.