使lein uberjar没有源文件

时间:2012-05-25 18:06:47

标签: clojure leiningen uberjar

我正在使用'lein uberjar'制作我项目的可执行jar文件。 正确创建jar并按预期运行。

我只是想知道是否有可能不在生成的.jar中包含我的源.clj文件,因为我打算分发它,而且我不希望我的源文件可供公众使用。 / p>

我正在使用lein 1.7.1

如果lein不可能,如果我只是手动从jar中删除了.clj文件,它会工作吗?我做了一个测试并且它有效,我希望确保这样做是安全的。

提前感谢。

2 个答案:

答案 0 :(得分:12)

在lein的:omit-source true中使用project.clj

答案 1 :(得分:2)

您是否尝试过使用提供的aot编译步骤?有关示例,请参阅here

另外,有人在不久前写了一篇关于编写整个项目的博客:http://blog.japila.pl/2012/02/aot-compile-all-namespaces-in-a-clojure-project-aot-all-in-project-clj-leiningen/

在这种情况下,你可能仍然需要挖掘并删除.clj文件,我不确定。也许这是开始的地方。

编辑1

我应该注意,即使您使用编译来分发.class文件,也有really good tools以用户可以阅读的方式反编译这些类(我过去曾经使用过这种方法)文档非常糟糕,我不得不去别处看看它是如何工作的。)

在这些情况下,您最好找到一种方法来实现自己的代码混淆器,尽管我对该主题知之甚少,here's a start