如何使用Java发布API?在C或C ++等语言中,它非常简单,因为您可以简单地从代码中划分标题,但在Java中,这是一个完全不同的故事。所以我知道Java中没有真正的方法可以混淆你的代码,即使你“混淆”它,因为它可以很容易地反编译和分析。但是,如果我不能简单地将标题分发给某人,那么在Java中发布API的首选方法是什么?我没有特殊需求,因为我处于设计过程的开始阶段,所以我非常有活力,而且我想了解我的所有选择。
答案 0 :(得分:7)
一种简洁的方法是纯粹在Java接口中定义API,将它们包含在单独的API模块中,并使实现模块依赖于API模块。这并没有提供与分离C ++头文件相同的功能,但是最好将接口编程为完全将它们与特定实现分开。
答案 1 :(得分:3)
您无需将API发布为头文件。开发人员需要的一切都已经在JAR中。如果要发布文档,请发布代码的java文档。
答案 2 :(得分:0)
您可以使用专业的java混淆器来混淆代码。然后它不容易反编译和可读。然后,您可以像其他人提到的那样发布您的jar和javadoc。
答案 3 :(得分:0)
您可以将库拆分为多个jar,并提供一个包含构成api的类和接口,另一个包含这些接口的实现。
然而,请注意,这个hastle可能不值得。为什么你会尝试混淆该api用户所需要的代码呢?我的意思是,无论谁使用你的api也需要接口的实现来运行应用程序,所以他们仍然能够反编译你的代码。
生成一个api-only jar会有助于分离api和实现(这意味着你可以替换实现或阻止对实现的直接访问)。