我应该去哪里寻找编写开源Java代码的最佳实践? 我不是在寻求如何正确编写代码的指导,而是关于分发、打包、文档以及除.java文件之外的所有其他方面的问题。
我的目标是将我编写的一个模块发布为开源。
编辑 - 我仍然缺少有关zip文件应包含什么的直接、具体说明。是否有惯例可循,或者我只需选择一些合理的结构即可?
我应该去哪里寻找编写开源Java代码的最佳实践? 我不是在寻求如何正确编写代码的指导,而是关于分发、打包、文档以及除.java文件之外的所有其他方面的问题。
我的目标是将我编写的一个模块发布为开源。
编辑 - 我仍然缺少有关zip文件应包含什么的直接、具体说明。是否有惯例可循,或者我只需选择一些合理的结构即可?
我不确定是否会有普遍的“最佳实践”意见,但你提到的几个问题可能有简单的答案:
我会继续思考更多的内容。
请查看Karl Fogel的书籍http://producingoss.com/ - 源代码在线可用。
如果您的项目名为Foo,则版本X.Y应打包在Foo-X.Y.zip中并解压到Foo-X.Y/...(换句话说,存档中每个文件的路径都应以Foo-X.Y/开头)
有一个Foo-X.Y/README.txt作为纯文本文件包含基本说明。它至少应包含有关完整文档位置的信息(“请参阅docs/index.html获取文档”),以及有关使用说明的简要说明(“将lib/Foo-X.Y.jar添加到类路径中”)和重建说明(“运行“ant build”以在lib中重新生成库和apidoc/中的javadoc”)。
如果您的项目需要其他库才能工作或编译,请自动化处理。即让其成为Maven项目或确保其与Ant Ivy兼容。
我建议将源代码放在src/下,构建的库放在lib/下,文档放在docs/下-这是人们所期望的。
我建议您使用SourceForge(http://sourceforge.net)作为您的项目托管平台,因为他们拥有各种工具(博客、维基、源代码控制选项等),而且全部都是免费的。
至于要在zip/jar中放什么...这真的取决于项目的类型。如果它是一个可重用的库,我建议在存档的根目录中放置您的许可证和分发jar。您可以将依赖项放在lib子目录中,并将文档放在docs子目录中。
举个例子可能会更好...下载Jakarta Commons - Lang API(http://commons.apache.org/lang)并查看他们提供了什么。
另一个答案是使用Maven(http://maven.apache.org)来管理您的项目,我也推荐这样做,尽管如果您以前没有使用过它,可能需要一些开发人员学习曲线。
祝你好运,希望这能对你有所帮助。