提问人:Pedro Delfino 提问时间:1/6/2023 更新时间:1/6/2023 访问量:43
如何解释 Clojure/ClojureScript 项目上 :cljsbuild 的这种安排?以及如何为持续部署扩展它?
How to explain this arrangement for :cljsbuild on a Clojure/ClojureScript project? And how to extend it for Continuous Deployment?
问:
我一直在处理这个名为clojurescript.csv的Clojure/Clojurescript项目。
在文件上,有一种特殊的结构形式,我还没有看到。project.clj
:cljsbuild
:cljsbuild {:builds [{:id "whitespace"
:source-paths ["src" "test"]
:compiler {:output-to "target/js/whitespace.js"
:optimizations :whitespace
:pretty-print true}}
{:id "simple"
:source-paths ["src" "test"]
:compiler {:output-to "target/js/simple.js"
:optimizations :simple
:pretty-print true}}
{:id "advanced"
:source-paths ["src" "test"]
:compiler {:output-to "target/js/advanced.js"
:optimizations :advanced
:pretty-print false}}]
通常,我会看到一个简短的声明,例如:
:source-paths ["src"]
在此存储库上,方法不同。尽管每个“构建路径”都使用相同的路径,但有不同的 id 和优化路由。source-path
1 - 为构建提供这些不同的 ID 有什么意义?这有什么用呢?
我看不出来。
2 - 另外,我想扩展此文件以进行持续部署(在 GitHub 注册表上发布 Maven 包)。通常,在 下面,我会添加以下内容:source-paths
source-paths ["src"]
;; Change your environment variables (maybe editing .zshrc or .bashrc) to have:
;; export LEIN_USERNAME="pdelfino"
;; export LEIN_PASSWORD="your-personal-access-token-the-same-used-on-.npmrc"
;; LEIN_PASSWORD should use the same Token used by .npmrc
;; Also, do "LEIN_SNAPSHOTS_IN_RELEASE=true lein install" or edit your .zshrc:
;; export LEIN_SNAPSHOTS_IN_RELEASE=true
:repositories {"releases" {:url "https://maven.pkg.github.com/tallyfor/*"
:username :env/LEIN_USERNAME ;; change your env
:password :env/LEIN_PASSWORD}}
:pom-addition [:distribution-management [:repository [:id "github"]
[:name "GitHub Packages"]
[:url "https://maven.pkg.github.com/my-organization/repository-name"]]]
我应该添加 3 次吗?每个 ID 一个?
感觉很重复。
答:
1赞
Thomas Heller
1/6/2023
#1
lein-cljsbuild
允许您指定多个构建配置,如下所示。编译时,您可以提供要构建的构建的 ID。所以,不仅仅是你做.lein cljsbuild once
lein cljsbuild once advanced
这很常见,因此您可以拥有未优化的开发版本和优化的发布版本。通常,您在构建配置中会有更多的差异,例如。至少构建不包括源路径。由于这是一个库项目,因此这很好。作者可能希望轻松地使用不同的优化级别进行测试。:advanced
advanced
"test"
:repositories
并且是 中的顶级定义或别名/配置文件定义。它们不会进入配置映射。:pom-addition
project.clj
:cljsbuild
评论