在哪里可以找到编写开源Java代码的最佳实践? 我不是在寻找有关如何正确编写代码的指示,而是寻找分发,打包,文档以及除.java文件之外的所有其他方面的指导。
我的目标是采用我编写的模块并将其作为开源发布。
编辑 - 我仍然缺少有关zip文件应包含的内容的具体说明。是否有这样的惯例,或者我应该选择一些合理的结构?
答案 0 :(得分:7)
我不确定是否会就“最佳做法”达成普遍协议,但您提到的项目可能会有简单的答案:
我会考虑更多。
答案 1 :(得分:6)
参见Karl Fogel的书http://producingoss.com/ - 可在线获取的资料。
答案 2 :(得分:4)
如果您正在寻找特定的目录结构,为什么不查看现有的开源项目?我从Jakarta Commons开始,这是一个使用频繁的包。
没有任何统计数据支持我,我会说许多项目使用类似于Maven指定的目录结构,即使他们不使用Maven本身(如果你可以通过Maven学习曲线,它有90%的时间都是很好的构建工具。
答案 3 :(得分:3)
我没有添加那么多,但我建议如下:
目录结构
<强>包装强>
<强>出版强>
宣传您的模块(博客,论坛,推特等)
在打包或上传时始终进行其他测试,可能会发生意外情况(丢失文件,存档损坏等)。
答案 4 :(得分:2)
我认为这一切都归结为自动化构建测试包部署周期。理想情况下,您应该只需单击一下(或使用单个提示命令)即可完成此操作。
就个人而言,我使用ant并定义一个部署目标,该目标执行以下操作
完成后,唯一的手动步骤是通过sourceforge的网站定义新版本。
显然,为了使这个程序有效,你必须被测试感染 - 我为我正在实现的每个新功能编写测试。
答案 5 :(得分:1)
如果您的项目名为Foo,那么版本XY应打包在Foo-XYzip中并解压缩到Foo-XY / ....(换句话说,存档中每个文件的路径应以Foo-开头XY /)
将包含基本指令的Foo-X.Y / README.txt作为纯文本文件。它应至少包含有关完整文档的位置的信息(“请参阅docs / index.html for documentation”)以及有关使用的简要说明(“将lib / Foo-XYjar添加到类路径中”)和重建说明(“运行“ant build”以在lib和javadoc中重新生成apidoc /").
中的库如果您的项目需要额外的库来工作或编译,那么就自动化了。即要么让它成为Maven项目,要么确保它与Ant Ivy一起使用。
我建议在src /下使用源代码,在lib /下构建库,docs /下的文档 - 这是人们所期望的。
答案 6 :(得分:0)
使用Apache Maven 2,您将获得所需的所有工件......使用简单的命令“mvn package site”
答案 7 :(得分:0)
我建议您为项目托管提供SourceForge(http://sourceforge.net),因为他们有各种各样的工具(博客,维基,源代码控制选项等),而且它们都是免费的。
至于放在zip / jar中的内容......它实际上取决于项目的类型。如果它是一个可重用的库,我建议在存档的根目录中,获得许可证和分发jar。您可以将依赖项放在lib子目录中,将文档放在docs子目录中。
一个例子可能会帮助你更好...下载Jakarta Commons - Lang API(http://commons.apache.org/lang)并查看它们提供的内容。
其他一个答案是使用Maven(http://maven.apache.org)来管理你的项目,我也会推荐这个,不过如果你没有使用它,那么它可以有一点开发人员的学习曲线。 / p>
祝你好运,我希望这会有所帮助。
答案 8 :(得分:0)
书:Practical API Design Confessions of a Java Framework Architec t(Jaroslav Tulach,2008,Apress)。
除了书中的提示外,请执行正确的文档(评论,javadocs)并在公共场所(最好是wiki风格)中包含使用示例。使用对于开发人员可能是显而易见的,但对于客户端则不是这样(请参阅JFreeChart作为示例)。