Skip to content
This repository has been archived by the owner on Aug 15, 2024. It is now read-only.

processor transitive dependencies get added to the project as provided for IntelliJ #4

Open
SerialVelocity opened this issue Sep 22, 2015 · 6 comments
Labels

Comments

@SerialVelocity
Copy link

As the title says. This wouldn't be a problem except it overrides "compile" dependencies by switching them to provided. They then can't be found when running the application through intelliJ

@alicederyn alicederyn added the bug label Sep 22, 2015
mavant added a commit to mavant/gradle-processors that referenced this issue Jan 6, 2016
This addresses issue palantir#4
(palantir#4)
which previously caused transitive dependencies of annotation processors
to be removed from the compile and runtime scopes even if they were
separately added.

Concretely, this allows using gradle-processors with the immutables-gson
and immutables-mongo annotation processors, both of which have required
runtime dependencies.
@alicederyn
Copy link
Contributor

Fix released as v1.1.4. Thanks @mavant!

@alicederyn
Copy link
Contributor

Apparently this fix only fixed a subset of the issues, and may have introduced other problems, so we're rolling back this PR. Reopening bug :(

@alicederyn alicederyn reopened this Jan 6, 2016
@mavant
Copy link
Contributor

mavant commented Feb 25, 2016

Tagging @jtibshirani and @rjullman; they've also been running into things related to this.

@jtibshirani
Copy link

We ran into a related issue on Roadrunner where the dagger processor pulled in guava 0.15 as provided, which ended up causing conflicts with our default version (guava 0.18). Looking forward to a fix!

@henryptung
Copy link

Although, to contribute some more semantics to the discussion:

processor is effectively an unnecessary-at-runtime compile-dependency. It compiles code against the library (as an annotation provider) but, by default, does not add it to runtime unless otherwise required by another library.

provided (in IntelliJ terminology) seems to refer to an exclude-from-runtime compile-dependency. It is useful primarily when running in some environment which provides some dependencies, which (to avoid conflicts) should/must be excluded from the built distribution/archive.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants