Skip to content

Instantly share code, notes, and snippets.

@marianoguerra
Last active December 12, 2015 06:38
Show Gist options
  • Save marianoguerra/4731074 to your computer and use it in GitHub Desktop.
Save marianoguerra/4731074 to your computer and use it in GitHub Desktop.
lein javac doesn't have access to :dependencies
/target
/lib
/classes
/checkouts
pom.xml
*.jar
*.class
.lein-deps-sum
.lein-failures
.lein-plugins

java sources in lein problem

since gist doesn't support directories, after checking out run:

sh setup.sh

run:

lein repl

it should fail with an error like:

Compiling 1 source files to /home/mariano/tmp/java-lein/target/classes
/home/mariano/tmp/java-lein/src/java/org/marianoguerra/Person.java:3: error: package org.mozilla does not exist
import org.mozilla.javascript;
          ^

comment that import and try again:

lein repl

you get access to it on the repl:

user=> org.mozilla.javascript.Cont
org.mozilla.javascript.Context
org.mozilla.javascript.ContextAction
org.mozilla.javascript.ContextFactory
org.mozilla.javascript.ContextListener
org.mozilla.javascript.ContinuationPending

and on the clojure code:

user=> (require 'java-lein.core)
nil
user=> (java-lein.core/do-some-js)
#<UniqueTag org.mozilla.javascript.UniqueTag@65f00a: NOT_FOUND>
(ns java-lein.core
(:import [org.mozilla.javascript Context UniqueTag NativeArray NativeObject
BaseFunction]))
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
(defn do-some-js []
UniqueTag/NOT_FOUND)
package org.marianoguerra;
//import org.mozilla.javascript;
public class Person {
}
(defproject java-lein "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.4.0"]
[org.mozilla/rhino "1.7R4"]]
:source-paths ["src/clj"]
:java-source-paths ["src/java"])
mkdir -p src/clj/java_lein
mkdir -p src/java/org/marianoguerra
mv core.clj src/clj/java_lein
mv Person.java src/java/org/marianoguerra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment