Re: Proposed New Structure (starter for 10)

[email protected] (Phillip Lord) Mon, 26 Oct 2015 16:43:02 +0000
Newsgroups gmane.emacs.jdee.devel
Message-ID <[email protected]>
Yes, if I wanted to make a standalone jar, that's how I'd do it. For use
within ant or from a shell-script/batch this would be a good way to go.
For projects already using maven, then I'd leave it as.

For me, at the moment, though, this is not an issue. My code is not
maven-centric, it's just where I have started. Support other mechanisms
of launch I do not think is hard.

As I have said, the issue comes when we need to know about stuff
the project knows about, but the JVM doesn't -- source paths being the
obvious one. Are there many other settings like this? At the moment, I
don't know for sure, but nothing leaps to mind.




Paul Landes <[email protected]> writes:

> If we're tightly coupling with clojure we _could_ also make it a leiningen
> project, bake in the repl (add deps and API call in main) and compile an AOT
> uberjar.
>
>
> On Oct 26, 2015, at 6:56 AM, Phillip Lord <[email protected]> wrote:
>
>> 
>> 
>> It's worth noting that the only thing I am using maven for is pulling in
>> the clojure dependencies and launch the JVM with the appropriate project
>> settings.
>> 
>> Getting another build tool to do the same thing would be
>> straight-forward enough. Even a shell script would work with a prebuilt
>> jar (of clojure and the nrepl server). The current code is not really
>> maven-centric. I just happen to have used maven.
>> 
>> Phil
>> 
>> Paul Landes <[email protected]> writes:
>> 
>>> I agree with Phillip writes and add that supporting two back ends at
>>> this point would be burdensome.
>>> 
>>> For those that dislike maven there isn't any reason some template config (pom)
>>> file couldn't be used in a temp directory (or even memory). Either way it
>>> would be pretty small since at best you'd only be (re)configuring the
>>> source/build/test paths.
>>> 
>>> 
>>> On Oct 23, 2015, at 4:00 AM, Phillip Lord <[email protected]> wrote:
>>> 
>>>> Troy Daniels <[email protected]> writes:
>>>> 
>>>>> I checked out the clojure backend branch last night and played around with
>>>>> it some.  I had some trouble getting it to build, but eventually solved
>>>>> those problems.  I submitted a pull request with the changes I made, if you
>>>>> want to incorporate them.
>>>> 
>>>> Bit spammed at the moment, but will do this. I tend not to use melpa
>>>> but melpa stable, though, so there many be some version issues.
>>>> 
>>>> 
>>>>> I'd like to start integrating this into the main code base.
>>>>> 
>>>>> I did have an idea for transition as well.  The code that Phillip wrote is
>>>>> maven-centric, and will not work without additional effort in a project
>>>>> with an ant build, or various other build tools.  So my idea was to use the
>>>>> nrepl if we can find a pom file, but otherwise fall back to the existing
>>>>> code.  This also means that functionality can be converted piecemeal.
>>>> 
>>>> This sounds reasonable, but I would say that maintaining two backends is
>>>> going to be a pain. I've tried in my code to separate out the
>>>> "maven-centric" and "everything else" part. This is why "jde-nrepl" is
>>>> in a different package.
>>>> 
>>>> Ultimately, I think a decision needs to be made. If this is the root we
>>>> go, then I would say it should be on the basis that we move
>>>> functionality out of the existing setup and into the clojure based on.
>>>> 
>>>> An alternative transition path would be to run beanshell from inside the
>>>> clojure middleware. Not thought that through, but maybe it would work.
>>>> 
>>>> 
>>>>> For example, there is a cider function to get the classpath, so
>>>>> replacing jdee-*-classpath is fairly simple. Replacing the import and
>>>>> completion functionality is more complicated, so would take longer to
>>>>> replace.
>>>> 
>>>> One issue I have is whether to run nrepl in the project environment or
>>>> the maven environment. Unfortunately this makes a difference -- maven,
>>>> for example, knows about source locations while the project does not (it
>>>> only needs the classpath).
>>>> 
>>>> 
>>>>> Phillips branch also has three (non-test) projects in a single repository:
>>>>> java, lisp and clojure.  I think this makes sense for several reasons.  It
>>>>> makes it obvious which version of the java code works with which version of
>>>>> the lisp code.  It also makes it simple to package the jars and clojure
>>>>> with the lisp code to put on MELPA.  It would be good to have something
>>>>> better than the current top level build script, which is just a shell
>>>>> script.
>>>> 
>>>> Actually, there's a bunch of make files in there which work pretty well.
>>>> 
>>>> 
>>>>> Does this all make sense?
>>>> 
>>>> It does.
>>>> 
>>>> Phil
>>>> 
>>>> ------------------------------------------------------------------------------
>>>> _______________________________________________
>>>> jdee-devel mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/jdee-devel

------------------------------------------------------------------------------