Comments (11)
Thanks for the issue.
Can you explain why you have this need to exclude so many things? Is there some issue with the analysis?
from dependency-analysis-gradle-plugin.
+1 for me. Personally, I'd like it because I keep module diagrams of my projects to illustrate how modules link together. Unless I can exclude projects from onIncorrectConfiguration
, I'm forced to add loads of interleaving direct links between nodes in the diagram, which makes the whole thing more difficult to follow.
Ideally I'd make most of those links api
instead of implementation
, which IMO is easier to understand.
from dependency-analysis-gradle-plugin.
Thanks for the issue.
Thanks for the reply and for creating this tool in the first place!
Can you explain why you have this need to exclude so many things? Is there some issue with the analysis?
Certainly. I have two main cases in mind for this:
- Multiple modules from the same project that I'm knowingly bringing in transitively and OK with (for example, hamcrest coming by way of junit was one that I encountered when first setting up DAGP on a project - I'm perfectly fine with those being managed upstream and find one-by-one excluding to be cumbersome)
- More specific to our project's use case, we (Mozilla) build have Nightly, Beta, and Release build variants that all come from the same repo. There are a couple transitive dependencies for other libraries we control, but their exact name depends on the channel (i.e.
blahblah-nightly
,blahblah-beta
, etc). If I'm going to accept these being transitive dependencies (and I am since we control the libraries in question and are assured that we're using the expected version for each project), I need to list all the variants individually instead being able to just use a single entry with a wildcard instead.
Hopefully that makes sense. Happy to try to clarify anything if needed.
from dependency-analysis-gradle-plugin.
Unless I can exclude projects from onIncorrectConfiguration
So you're saying you prefer to have incorrectly declared dependencies? I'm not sure I want to make that easier to do.
from dependency-analysis-gradle-plugin.
I suspect that you might find the bundle feature very useful for meeting your needs. It already permits regex.
from dependency-analysis-gradle-plugin.
I'm having a bit of difficulty figuring out how to apply bundles to our situation.
I would have expected behavior something along the lines of #904 but obviously that's not how they're designed to work. I'm not seeing how to make the connection between defining a bundle and telling the plugin to ignore any transitive dependencies applicable to it.
from dependency-analysis-gradle-plugin.
@autonomousapps Maybe I'm misunderstanding how bundles are meant to work. Do I need to create a bundle which is chained up to the parent dependency that pulls in the transitive ones I'm trying to ignore?
from dependency-analysis-gradle-plugin.
So I think what you might want is something like this:
// build.gradle
dependencyAnalysis {
structure {
bundle("project-group") { // name is arbitrary but must be unique
primary(":name-of-project-with-api-deps") // the project dep you want to declare
include(":<regex that matches the projects you don't want to have to declare>")
}
}
}
from dependency-analysis-gradle-plugin.
Thanks, I'll play around with that!
from dependency-analysis-gradle-plugin.
Related Issues (20)
- ComputeUsagesTask taking 30+ minutes to execute when it used to take 30 seconds for the same project HOT 8
- Count of transitive dependencies that would be required to add when removing an unused dependency
- [TestKit Plugin] Open Rendered elements to be able to create custom ones HOT 1
- thinks I can remove testImplementation after adding compileOnly HOT 2
- Unknown constant pool type HOT 14
- Missing git tag for latest stable release (1.31.0) HOT 1
- Upgrade Moshi dependency to avoid CVE-2022-3635
- Plugin creates variant ambiguity errors with JVM Test Suite Plugin + Jacoco Aggregation Plugin HOT 3
- FR: Suggest converting an android project to a JVM-only project if possible HOT 1
- synthesizeDependenciesMain is failing with exception when having a file collection with an absolute file on windows as dependency
- Make FindDeclaredProcsTask use the JDK of the configured Java toolchain to load classes HOT 1
- ClassNotFoundException when adding plugin to project HOT 1
- File-level private vals of a type from an external dependency result in that dependency requiring to be an api dependency HOT 3
- Could not resolve project -> when a submodule is aar artifact HOT 3
- Unable to find method KotlinModuleMetadata.getKmModule() , explodeJarRelease is failing HOT 1
- False positive HOT 3
- Task ':explodeCodeSource' uses this output of task ':kspKotlin' without declaring an explicit or implicit dependency HOT 3
- GraphVisitor.usesResByRes is extremely slow. (Stuck in computeActualUsageDebug for many minutes) HOT 18
- Run plugin for some specific modules only HOT 1
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 dependency-analysis-gradle-plugin.