quick note: the foo-one in local_mvn_repo (inside foo_two) is just v 0.1.0
without SNAPSHOT
the foo-one project however is 0.1.0-SNAPSHOT



On Sat, May 25, 2013 at 10:00 AM, David Williams
<mobiusinvers...@gmail.com>wrote:

> This is really important, and I am totally stumped and on a deadline.
>  Help is greatly appreciated.
>
> I have a Clojure project called red-black, which in particular contains a
> file called interval_tree.clj
>
> I have been compiling this project with lein uberjar and then using the
> resulting jar in other projects by installing it in a local maven
> repository.
>
>     mvn install:install-file  \
>         -Dfile=../red-black/target/red-black-0.1.0.jar  \
>         -DgroupId=self   \
>         -DartifactId=red-black  \
>         -Dversion=0.1.0  \
>         -Dpackaging=jar  \
>         -DgeneratePom=true  \
>         -DcreateChecksum=true  \
>         -DlocalRepositoryPath=local_mvn_repo
>
> The crazy thing is, I added a new function, compiled my jar and
> reinstalled it in the local maven repository of another project, and now
> java cant find my new function
>
>     user=> (red-black.interval-tree/tree-to-flat-list )
>     CompilerException java.lang.RuntimeException: No such var:
> red-black.interval-tree/tree-to-flat-list, compiling (NO_SOURCE_PATH:1:1)
>
> However this function is in red-black.interval-tree.clj!  I even went into
> my local_mvn_repo, unzipped the jar, and looked at the interval_tree.clj
> source.  The function is in there!
>
> Whats even more strange is that the other function from that library are
> accessible.  For example, in my second project with the local mvn repo:
>
>     user=> (use 'red-black.interval-tree)
>     nil
>
> Now a little tab tab magic:
>
>     user=> (red-black.interval-tree/
>     red-black.interval-tree/add-to-result
>  red-black.interval-tree/black
>  red-black.interval-tree/check-max-interval
>     red-black.interval-tree/get-color
>  red-black.interval-tree/get-hash
> red-black.interval-tree/get-interval
>     red-black.interval-tree/get-key
>  red-black.interval-tree/get-left
> red-black.interval-tree/get-max
>     red-black.interval-tree/get-parent
> red-black.interval-tree/get-right
>  red-black.interval-tree/get-root
>     red-black.interval-tree/get-sentinel
> red-black.interval-tree/get-value            red-black.interval-tree/has?
>     red-black.interval-tree/health-check
> red-black.interval-tree/high                 red-black.interval-tree/insert
>     red-black.interval-tree/insert-fixup
> red-black.interval-tree/left-rotate          red-black.interval-tree/low
>     red-black.interval-tree/max-of-three
> red-black.interval-tree/new                  red-black.interval-tree/node
>     red-black.interval-tree/point-lookup
> red-black.interval-tree/pretty-print
> red-black.interval-tree/recursive-max
>     red-black.interval-tree/red
>  red-black.interval-tree/right-rotate
> red-black.interval-tree/set-color
>     red-black.interval-tree/set-interval
> red-black.interval-tree/set-key
>  red-black.interval-tree/set-left
>     red-black.interval-tree/set-max
>  red-black.interval-tree/set-parent
> red-black.interval-tree/set-right
>     red-black.interval-tree/set-root
> red-black.interval-tree/set-value
>  red-black.interval-tree/update-max
>     user=> (red-black.interval-tree/
>
> But as you can see the funstion tree-to-flat-list is missing.  When I go
> back into my red-black project and launch the repl, I can invoke the
> project just find.  Help!  As of 5 hours ago I was creating new methods in
> my red-black project, compiling my uberjar and installing it in my other
> project via local maven install, and new methods were being picked up just
> fine.  Something appears to be very wrong, please advise!
>
> Update:
>
> A self contained example of this issue is in this tarball:
>
>     http://gorillamatrix.com/files/foo.tar.gz
>
> Go into foo-two and lein repl.  Try to load foo-two.core, you should see
> this:
>
>     user=> (use 'foo-two.core)
>     CompilerException java.lang.RuntimeException: No such var:
> foo-one.core/bar, compiling:(foo_two/core.clj:6:2)
>
> However foo-one.core/bar is certainly defined!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to