来生成jar,生成的jar文件为target/uberjar/clojure-noob-0.1.0-SNAPSHOT-standalone.jar,我们可以在java里面直接运行了。 java -jar target/uberjar/clojure-noob-0.1.0-SNAPSHOT-standalone.jar Hello, Clojure! lein uberjar:打包项目(cd 到project.clj所在路径),包含依赖项。得到jar后就跟平常的jar没有区别了。 uberjar是可执行的jar包 :uberjar-name "sample-standalone.jar" ; as above for uberjar ;; 从~/.m2自定义classpath :^|/).svn/"] ;; 一样的东东,只针对于uberjar :uberjar-exclusions [#"META-INF/DUMMY.SF"] ;; 对jar's manifest
dependencies [] :dev-dependencies [ [storm "0.5.3"] ]) 你可以运行lein deps来获取所有的依赖包, 运行lein compile来build项目,并且用lein uberjar
JEE applications - war/ear deployments SpringBoot or Thorntail (formerly known as WildFly Swarm) - uberjar
首先需要明确一点,JVM 并不慢,我们可以将之前的 Hello World 打成 uberjar,运行测试下时间。 # 为了能用 java -jar 方式运行,需要在 project.clj 中添加 # :main how-clojure-work.core $ lein uberjar $ time java -jar 把生成的 uberjar 解压打开,可以发现 clojure.core 里面的函数都在,这些函数在程序启动时都会被加载。 这就是 Clojure 启动慢的原因:加载大量用不到的类。
/gradlew uberjar Run cd path/to/classpy .
实现捆绑UberJar包的deploy方法。 添加@Deployment方法级注释。 但是,要运行实验,应将microprofile-config.properties文件添加到UberJar中的META-INF目录中。
repositories { mavenCentral() } dependencies { implementation 'commons-io:commons-io:2.6' } task uberJar
repositories { mavenCentral() } dependencies { implementation 'commons-io:commons-io:2.6' } task uberJar
repositories { mavenCentral() } dependencies { implementation 'commons-io:commons-io:2.6' } task uberJar
cd ~/do-clojure-web lein uberjar 第二步 - 设置Clojure应用程序环境 我们需要三个主要部分才能使此应用程序正常工作:Java,Supervisor和Nginx。
安装python的工具在osx和linux下问题不算特别大,但在windows下很可能是个梦魇;而clojure虽然可以打成一个uberjar,但作为一个命令行工具,每次运行启动jvm那一瞬间的迟滞,还是让人很不爽的
app} :profiles { :dev {:dependencies [[ring-mock "0.1.3"]]} :uberjar
<goal>shade</goal> </goals> <configuration> <finalName>${uberjar.name
<goal>shade</goal> </goals> <configuration> <finalName>${uberjar.name