Clojure 莱宁根';lein安装&x27;不写pom.xml?

Clojure 莱宁根';lein安装&x27;不写pom.xml?,clojure,leiningen,Clojure,Leiningen,我一直在参与一个项目,其中有一个固定的pom.xml,但我倾向于出于各种目的临时修改project.clj。大多数时候,Leiningen似乎忽略了pom.xml,但是lein install和lein deploy重写pom.xml。这对Leiningen的功能有必要吗?如果没有,我能阻止它吗?还没有在在线文档中找到任何关于此的信息 这不是一个大问题,但我不想在执行“git提交”之前处理项目中的官方pom.xml 编辑:我发现了一个解决我的情况的方法,那就是。这会导致拉入另一个项目,而不创建新

我一直在参与一个项目,其中有一个固定的pom.xml,但我倾向于出于各种目的临时修改project.clj。大多数时候,Leiningen似乎忽略了pom.xml,但是
lein install
lein deploy
重写pom.xml。这对Leiningen的功能有必要吗?如果没有,我能阻止它吗?还没有在在线文档中找到任何关于此的信息

这不是一个大问题,但我不想在执行“git提交”之前处理项目中的官方pom.xml


编辑:我发现了一个解决我的情况的方法,那就是。这会导致拉入另一个项目,而不创建新的jar。然而,我仍然很好奇:Leiningen是否需要创建pom.xml,例如为
lein安装
?为什么?我想了解这个过程。

我不确定
lein install
是否可以在不生成pom.xml的情况下运行

它生成pom的原因是leiningen使用maven获取所有依赖项。事实上,maven能够从clojars获取依赖项,leiningen将其用于clojure依赖项以及java依赖项Maven需要pom.xml来指定存储库位置和运行javac(或任何其他构建命令)所需的其他配置,此外还需要groupId和artifactId来将库部署到(可能是本地的)存储库



另一个可能的解决方法是使用变更列表(特别是,如果使用tortoiseSVN,我会使用提交时忽略变更列表)在大多数情况下忽略pom.xml。我相信它可以帮助您在git中实现这一点。

最近我使用了一种不同的解决方案。假设项目使用git:首先,我确保提交或隐藏所有更改。然后我安装
lein
,然后安装
git stash
。lein install更改的唯一文件是pom.xml
git stash
撤消
lein install
所做的更改。(然后我在另一个项目中更改project.clj,以反映我刚刚安装的项目的新版本号,如果该版本号更改的话。)这个过程是一个混乱的过程,但我发现它比签出方法造成的复杂度要少。