Private Repository for Leiningen Projects
Host private Clojure libraries for Leiningen. Add one entry to project.clj, then lein deploy. Simple, published pricing.
14 days free. No credit card required.
(defproject com.acme/backend "2.1.0"
:dependencies [[org.clojure/clojure "1.11.1"]
[com.acme/shared-lib "1.5.3"]
[com.acme/auth-service "3.0.1"]]
:repositories [["cloudrepo"
{:url "https://your-org.mycloudrepo.io/repositories/your-repo"
:username :env/cloudrepo_username
:password :env/cloudrepo_token
:sign-releases false}]]) Included on every plan
Plans differ only in storage and transfer allowance.
- SSO (SAML, OIDC)
- Multi-factor authentication (MFA)
- Audit log
- Repository tokens
- Unlimited users, no per-seat pricing
- Human support
- Maven, npm, Python, Docker with Helm charts, and plain files
- Proxy repositories
- SCIM
Coming soon: Access log
Leiningen vs deps.edn: Choose the Right Tool
CloudRepo supports both build tools equally well - choose based on your needs
| Aspect | Leiningen | deps.edn |
|---|---|---|
| Build Tool | Leiningen (lein) | Clojure CLI (clj/clojure) |
| Config File | project.clj | deps.edn |
| Philosophy | All-in-one build tool | Composable tools approach |
| Plugin System | Rich plugin ecosystem | Tools as libraries |
| Production Builds | Built-in uberjar | tools.build or depstar |
| REPL Integration | lein repl | clj with aliases |
| Maturity | Since 2010 | Since 2017 |
| Learning Curve | Familiar to Java devs | More Clojure-idiomatic |
Use Leiningen When:
- You have existing Leiningen projects
- You need the mature plugin ecosystem
- Team is familiar with Maven/Gradle concepts
- You want all-in-one build tool simplicity
Use deps.edn When:
- Starting new Clojure projects
- You prefer composable tools philosophy
- Working with monorepos and local deps
- Need git dependencies support
CloudRepo Works Perfectly With Both
Same repository, same libraries, your choice of build tools
Every plan includes human support and SSO. See pricing
Built for professional Leiningen workflows
Everything you need for enterprise Clojure development with Leiningen
- Battle-Tested Maven Format
- Leiningen uses standard Maven repositories under the hood. CloudRepo provides rock-solid Maven hosting with perfect Leiningen compatibility.
- Project.clj Simplicity
- Simple repository configuration in project.clj. Deploy with 'lein deploy' and pull dependencies automatically - just works.
- Plugin Ecosystem
- Full support for the mature Leiningen plugin ecosystem. Use lein-ring, lein-cljsbuild, and all your favorite plugins.
- Uberjar Deployment
- Deploy standalone uberjars for production. Perfect for traditional JVM deployments and Docker containers.
- Enterprise Security
- API tokens for CI/CD and team-based access controls for enterprise compliance.
Quick Leiningen Setup Guide
Configure project.clj and start deploying private libraries in minutes
Configure project.clj for CloudRepo
Add CloudRepo as a private repository in your Leiningen project configuration.
(defproject com.mycompany/private-lib "1.2.3"
:description "Private Clojure library"
:dependencies [[org.clojure/clojure "1.11.1"]
[com.mycompany/shared-lib "2.0.1"]]
;; One entry fetches dependencies and deploys
:repositories [["cloudrepo" {:url "https://your-org.mycloudrepo.io/repositories/your-repo"
:username :env/cloudrepo_username
:password :env/cloudrepo_token
:sign-releases false}]]) Set Authentication Credentials
Leiningen reads the login from the environment. CLOUDREPO_USERNAME is the email address of the account that created your repository token, and CLOUDREPO_TOKEN is the token itself, not your password. Set both from your secret store or your CI system.
env:
CLOUDREPO_USERNAME: you@example.com
CLOUDREPO_TOKEN: ${{ secrets.CLOUDREPO_TOKEN }} ;; Alternative: keep the login in a file only you can read (chmod 600), and
;; leave :username and :password out of the project.clj entry.
{:auth {:repository-auth {#"https://your-org\.mycloudrepo\.io/.*"
{:username "you@example.com"
:password "YOUR_REPOSITORY_TOKEN"}}}} Deploy with Leiningen
Use standard Leiningen commands to deploy your libraries to CloudRepo.
# Deploy the library
lein deploy cloudrepo
# Deploy a jar with explicit coordinates
lein deploy cloudrepo com.mycompany/my-lib "1.2.3" target/my-lib-1.2.3.jar
# Check dependencies
lein deps :tree
# Force update of SNAPSHOT dependencies
lein -U deps Need advanced configuration?
Check out our comprehensive Leiningen documentation for profiles, plugins, and enterprise setups.
Perfect for every Leiningen use case
From legacy systems to modern microservices, CloudRepo scales with your needs
Enterprise Clojure Teams
Share proprietary Leiningen libraries across departments. Perfect for organizations with established Leiningen workflows.
Legacy System Migration
Gradually modernize Leiningen projects. Host both old and new libraries while migrating at your own pace.
Clojure Web Applications
Deploy Ring/Compojure applications as uberjars. Perfect for traditional deployment pipelines and Docker containers.
Mixed Build Tool Teams
Support developers using both Leiningen and deps.edn. One repository for all your Clojure build tools.
Frequently asked questions
Everything you need to know about CloudRepo for Leiningen
- Why use CloudRepo instead of Clojars for private Leiningen libraries?
- Clojars is the community repository for open-source Clojure libraries but doesn't support private repositories. CloudRepo provides private repository hosting that works perfectly with Leiningen, offering access controls and team management. Use Clojars for public dependencies and CloudRepo for your proprietary code.
- How does CloudRepo compare to self-hosting Nexus or Archiva for Leiningen?
- Self-hosting means maintaining servers, security patches, backups and TLS certificates. CloudRepo runs the repository for you, with automatic backups.
- Can I use both Leiningen and deps.edn with the same CloudRepo repository?
- Absolutely! CloudRepo hosts standard Maven repositories that work with all Clojure build tools. Your team can use Leiningen for some projects and deps.edn for others, all sharing the same private libraries. This is perfect for gradual migrations or mixed-tool environments.
- How do I migrate from JFrog Artifactory to CloudRepo for Leiningen projects?
- Both use the Maven repository format. Move your JARs and POM files from Artifactory to CloudRepo (we can help with bulk imports), then update the repository URLs and credentials in project.clj.
- Should I use Leiningen or deps.edn for new Clojure projects?
- Leiningen is perfect if you need its mature plugin ecosystem, prefer an all-in-one build tool, or have team members familiar with Maven/Gradle. Choose deps.edn for newer projects that embrace the composable tools philosophy. CloudRepo supports both equally well, so you can choose based on your project needs, not repository limitations.
- Does CloudRepo support Leiningen plugins and templates?
- Yes! CloudRepo can host Leiningen plugins and templates just like any other JAR artifact. You can create private plugins for your organization and share them through CloudRepo. This includes lein-ring for web apps, lein-cljsbuild for ClojureScript, and custom templates for project scaffolding.
Why JVM teams choose CloudRepo
“We were industrializing our partner-startup's codebase, and they were missing an artifact repository. We needed a private Maven repository, and we didn't want to set it up ourselves on AWS. We felt that CloudRepo was priced nicely with a good feature set. In my experience, managing a private repository takes maintenance (cleaning up snapshots, resizing disks, upgrades...) and I didn't want my team to waste time with that.”
“We use CloudRepo because we needed a closed source Maven Repository that could be easily managed to provide/restrict access to our clients, didn't cost the world to use, and that wouldn't require significant effort to set up/maintain.”
Perfect Maven Repository Compatibility
Leiningen uses Maven repositories under the hood - CloudRepo provides Maven hosting
What This Means For You
- 100% compatibility with all Leiningen versions
- Share libraries between Leiningen, deps.edn, Maven, and Gradle projects
- Standard POM metadata and dependency resolution
- SNAPSHOT versions with proper metadata handling
Supported Artifacts
- Standard JARs and uberjars
- Leiningen plugins and templates
- Source JARs and documentation
- POM files with complete metadata
Example: Using CloudRepo with Leiningen Profiles
(defproject com.acme/service "1.0.0"
:dependencies [[org.clojure/clojure "1.11.1"]]
;; Environment-specific repositories
:profiles {:dev {:repositories [["cloudrepo-dev"
{:url "https://your-org.mycloudrepo.io/repositories/dev"
:username :env/cloudrepo_username
:password :env/cloudrepo_token}]]}
:prod {:repositories [["cloudrepo-prod"
{:url "https://your-org.mycloudrepo.io/repositories/prod"
:username :env/cloudrepo_username
:password :env/cloudrepo_token
:sign-releases false}]]}}) Start hosting private Leiningen libraries today
14 days free. No credit card required. Setup in 5 minutes.