Comments (8)
from focus.
Oh absolutely I don't think it's caused by the plugin. I'm curious if you've got any suggestions on chasing down the issue. I find it odd that we're getting projects applied that should be unfocused. I'm sure it's in our build, but the gradle logs are keeping their secrets to themselves.
from focus.
from focus.
I'll verify soon, but that is pretty entertaining that I happened to randomly pick a task that happened to have the clean contract that's incompatible with the entire premise.
I really appreciate the time, I'll have to check this in a few days. I'll close off the issue after I verify. Thank you!
from focus.
😢 Seems like that wasn't the issue. I'm unable to import the project into IntelliJ after :focus
-- same error. I think I'll have to do some process of elimination with all the different plugins.
from focus.
We finally figured out what the issue is. More details in gradle/gradle#27115
In short, the problem is how the include function in settings.gradle.kts works:
"As an example, the path a:b adds a project with path a:b, name b and project directory $rootDir/a/b. It also adds the a project with path :a, name a and project directory $rootDir/a, if it does not exist already."
We have so many cases that a and a:b are both Gradle projects.
I am wondering if the Dropbox team faced this problem. If so how you went about resolving it? cc @rharter
from focus.
Hmm, are you saying that you have a project structure like
.
└── a/
├── build.gradle
├── src/
│ └── main
└── b/
├── build.gradle
└── src/
└── main
And your generated focus.settings.gradle
contains include(":a:b")
, but you don't want it to include :a
and it does?
If so, that's not something we've seen at Dropbox and, unfortunately, I can't even think of a way to work around that. That suggests that there's no way to include project :a:b
without including :a
, and the point of the Focus plugin is to only include the required projects. If we were to consider :a
a "required" project in this case then we would also have to include it's dependencies, and that quickly nullifies any benefit of the Focus plugin.
from focus.
Yes you have summarized the problem correctly. And yes this is not a focus plugin issue. It is a gradle issue.
I think this issue can be closed. Maybe action item could be to improve the documentation to mention about this case and then point to the suggestion at gradle/gradle#27115 (comment).
from focus.
Related Issues (20)
- I am getting below error while integrating
- java.lang.NoSuchMethodError: 'void com.dropbox.focus.CreateFocusSettingsTask.notCompatibleWithConfigurationCache(java.lang.String)' HOT 2
- Support focusing multiple subprojects HOT 1
- Support running a Gradle Task from right click on a subproject in IDE HOT 2
- What is the profit from Focus in the android application HOT 1
- Generated focus.settings.gradle disappear on clean/rebuild HOT 2
- Generated focus.settings.gradle doesn't respect includeBuild statements HOT 2
- Problem with path to modules
- focus.settings.gradle not being generated HOT 1
- Documentation is unclear HOT 5
- Regenerate focus.settings.gradle when new module asi added HOT 1
- Consider Gradle Kotlin DSL gradle.kts files HOT 2
- Gradle 8.0 - clearFocus - ClearFocusTask error
- focus.settings.gradle for Windows HOT 5
- New version HOT 2
- Included builds are not yet available for this build. HOT 1
- incompatitble with configuration cache on Gradle 8.4 HOT 2
- [Feature request] Support Project Isolation HOT 1
- Self resolving project dependencies aren't included in generated settings file.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from focus.