-
Notifications
You must be signed in to change notification settings - Fork 97
Remove project dependency on leiningen #47
Comments
+1 I can't integrate https://github.com/ddellacosta/friend-oauth2 because of conflicting |
The dependency on Leiningen is to invoke figwheel from inside the same process. There should be a better way to do that, I just didn't manage to figure that out. It seems figwheel relies quite heavily on the project context provided by leiningen, but maybe there's a way to invoke it directly without having to pull in leiningen? ping @bhauman The dev profile approach seems fine as well. I would accept a PR for that. |
I realised that the dev profile won't really solve the problem for @pjagielski as his dependencies will still conflict. I'll have a look at putting together a PR. |
There is a separate Figwheel library that handles the serving of changed file notifications. You would have to handle the watching and the building of cljs and then call the figwheel API to handle notifying the browser. There would be need to duplicate a small portion of cljsbuild functionality. |
After some consideration I've figured out what I think is a clean way to do this. Building an uberjar will no longer include leiningen, figwheel, weasel. This is available on 0.7.0-SNAPSHOT. I would really appreciate if people could try this out and report their findings. |
This comment from @pjagielski is still valid. Steps to reproduce
test-snapshut-chestnut.server=> (require '[friend-oauth2.workflow :as w])
CompilerException java.lang.ExceptionInInitializerError, compiling:(friend_oauth2/workflow.clj:1:1)
test-snapshut-chestnut.server=> (require '[friend-oauth2.workflow :as w])
CompilerException java.lang.NoClassDefFoundError: Could not initialize class clj_http.client__init, compiling:(friend_oauth2/workflow.clj:1:1) |
Leiningen depends on I see three ways to solve this
|
@plexus Thank you for taking the time to write a clear response. |
I think that 2) is still important, it's not good when your production code depends on the build tool. |
It doesn't, that's what's been addressed in 0.7.0-SNAPSHOT. Chestnut projects do not directly depend on Leiningen, the dependency is only included in development mode. It will not be included in production mode or when building an uberjar. |
For reference: corresponding issue on the friend-oauth2 side clojusc/friend-oauth2#34 |
I'm happy to bump the clj-http version and if push comes to shove I'll add the exclusion, but isn't the problem here not in friend-oauth2, but in friend? |
…lexus/chestnut#47 (as well as stay up-to-date).
Nevermind, I can't bump clj-http without that exclusion (duh)--anyways, released a new version: 0.1.3. Regardless, seems like it would be worth bringing this up in the friend issue I linked to above to give them a nudge--presumably this will be a problem with any project using friend and clj-http. |
The two issues raised in this thread have been resolved
If there are still concerns about the relationship between Chestnut and Leiningen, please start a new thread. |
Chestnut has a dependency on Leiningen which depends on Maven. This means we pull in a ton of unnecessary dependencies into our uberjar including Plexus and Lucene. It seems to be only used in dev.clj. Does it make sense to:
The text was updated successfully, but these errors were encountered: