我正在使用'lein uberjar'制作我项目的可执行jar文件。 正确创建jar并按预期运行。
我只是想知道是否有可能不在生成的.jar中包含我的源.clj文件,因为我打算分发它,而且我不希望我的源文件可供公众使用。 / p>
我正在使用lein 1.7.1
如果lein不可能,如果我只是手动从jar中删除了.clj文件,它会工作吗?我做了一个测试并且它有效,我希望确保这样做是安全的。
提前感谢。
答案 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文件,我不确定。也许这是开始的地方。
我应该注意,即使您使用编译来分发.class文件,也有really good tools以用户可以阅读的方式反编译这些类(我过去曾经使用过这种方法)文档非常糟糕,我不得不去别处看看它是如何工作的。)
在这些情况下,您最好找到一种方法来实现自己的代码混淆器,尽管我对该主题知之甚少,here's a start。