This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-01-23
Channels
- # announcements (2)
- # babashka (56)
- # beginners (30)
- # calva (79)
- # cider (5)
- # circleci (3)
- # clj-kondo (84)
- # cljfx (2)
- # cljsrn (3)
- # clojure (264)
- # clojure-czech (3)
- # clojure-europe (18)
- # clojure-spec (3)
- # clojurescript (12)
- # conjure (28)
- # cursive (5)
- # datomic (4)
- # deps-new (22)
- # fulcro (6)
- # graalvm (3)
- # jobs (1)
- # malli (1)
- # off-topic (23)
- # pathom (4)
- # portal (3)
- # practicalli (2)
- # quil (6)
- # reagent (20)
- # remote-jobs (3)
- # reveal (14)
- # ring (10)
- # shadow-cljs (5)
- # spacemacs (4)
- # xtdb (4)
» clj -X:new :name posobin/eb-deployment-test
Generating a project called eb-deployment-test based on the 'app' template.
» cd eb-deployment-test
» clojure -M:uberjar
Clojure 1.10.1
user=>
Why am I getting the repl prompt and no jar?Clojure version 1.10.1.763
Ah, I should have run this with -X:uberjar. Readme at https://github.com/seancorfield/clj-new says to use -M.
But readme inside the generated project is correct.
@posobin Good catch! I forgot the main README still said -M
-- I have an open issue to update the deps-deploy
stuff to use the latest version and switch to -X
so I'll add a note to that to review and update the main clj-new
README!
Why does clj-new generate a LICENSE file?
Because the generated README has a clause about licensing.
It's better to provide a default for folks who want to open source something -- other folks can just ignore it.
The idea is that clj-new produces a "complete" starter project for you: it has a stub for tests, a stub for documentation, a complete pom.xml
, etc.
The pom.xml
also contains license information and SCM information.
Also: this is exactly the same behavior as boot-new and exactly the same behavior as lein -- and it's always been that way.
The project templates -- app and lib -- in clj-new came from my boot-new project, which copied a lot of stuff from Leiningen (with permission and with proper accreditation).
I think there should be a note that this doesn't mean that the project has to be under EPL: I was first afraid that this is the case when I saw the LICENSE file, and only after reading the thread https://clojureverse.org/t/lein-creates-a-file-with-eclipse-gpl-license/5691 understood that there is no such obligation.
Also, is pom needed only if I make a library out of my project?
Currently, the app
template also generates pom.xml
because depstar
sort of needs it -- but I'm planning to adjust depstar
's behavior for uberjars. But, yes, if you generate a lib
project and intend to deploy it somewhere, you'll need a pom.xml
.
As for the license, I guess I sort of assumed that folks would just change the license to whatever they wanted -- but nearly all Clojure code that is open sourced uses EPL.
Hmm, so I should keep pom.xml updated somehow? Or does tools.deps do it for me? I am using the app template.
:sync-pom true
and you can also specify :version ...
to change the version.
That isn't the default, but I'll probably updated clj-new
to make that the default when I next work on it.
https://github.com/seancorfield/clj-new/issues/49 to address licensing questions; https://github.com/seancorfield/clj-new/issues/50 to clarify the pom.xml
usage and versioning (and have depstar
keep it sync'd by default).