Java发布工程良好实践
我有一个相当简单的开源Java项目正在启动。这个过程对我来说是新的,我习惯于只为自己编写程序。在Java中发布开源项目时,需要注意哪些好的实践 以下是我能想到的一些事情,你能推荐其他的吗Java发布工程良好实践,java,open-source,Java,Open Source,我有一个相当简单的开源Java项目正在启动。这个过程对我来说是新的,我习惯于只为自己编写程序。在Java中发布开源项目时,需要注意哪些好的实践 以下是我能想到的一些事情,你能推荐其他的吗 版本控制存储库(您用什么来解释相关的标记/分支?外部自述文件?) 在代码中包含适当的 包括预打包的可执行JAR文件,包括文件名中的版本号 某种自述文件,解释构建/运行软件所需的外部依赖关系(文件名和放置位置是否有通用约定?) 项目的网页,在源代码和/或可执行文件中包含指向该网页的链接,以防有人首先获得源代码或
- 版本控制存储库(您用什么来解释相关的标记/分支?外部自述文件?)
- 在代码中包含适当的
- 包括预打包的可执行JAR文件,包括文件名中的版本号
- 某种自述文件,解释构建/运行软件所需的外部依赖关系(文件名和放置位置是否有通用约定?)
- 项目的网页,在源代码和/或可执行文件中包含指向该网页的链接,以防有人首先获得源代码或可执行文件(而不是通过相关网页)
我建议使用MAVEN作为工具来管理构建/运行所需的外部依赖关系
您还可以使用Vulcan或类似工具进行连续的inetgration,这样就可以知道当前版本是否能正常工作。您也可以使用它发布代码。使用它,为您的项目创建站点、指定依赖项、优化发布非常容易……例如,Apache的Commons项目使用Maven。基本上您希望您的项目“开箱即用”。当人们为一项任务选择正确的开源项目时,他们会下载一堆表示支持该任务的项目,并使用最好的项目。如果一个项目需要进行大量的设置工作(例如,从20个不同的站点下载20个JAR依赖项),大多数人只能在万不得已的情况下尝试,或者干脆忽略它 存储库:您可以尝试一些更新的存储库引擎,如或。它们简化了分支机构的开发和合并。但重要的是,请选择IDE本机支持的引擎 依赖项:您应该使用自述文件来声明依赖项,但这还不够,或者使用来管理依赖项,在这种情况下,您只需要包含
pom.xml
文件,或者在发行版中包含依赖的JAR。在第二种情况下,将依赖项分为强制
、可选
、编译时间
和测试
。可选依赖项的一个示例是Hibernate的字节码生成工具
站点:Maven可能与您的软件的特定版本相关(但从未使用过)
documentation-JavaDoc:记录所有内容,并尝试实施确保高质量JavaDoc的策略:
/**
* Sets the cost
* @param decimal cost
*/
public void setCost(BigDecimal decimal){
没用。更好的是:
/**
* Sets the cost, cost is in currency setted by #setCurrency.
* @param decimal cost, precision shoule be at least three places
*/
public void setCost(BigDecimal decimal){
文档:Javadoc是不够的。给出一些起点——最好是一个教程(我不是说那种有很多eclipse对话框截图的教程;)。示例代码也可以,或者至少在某个地方写——“阅读EntryPoint
类的javadoc是开始使用这个库的好方法”。如果您只有javadocs,那么考虑使用您的库的任何人都会看到一个所有类别和包的列表,并且不知道从哪里开始
错误跟踪软件:您一次记住的错误不会超过三个(并且会忘记一些事情)-它还将帮助您管理任务和新的想要的功能。
您可能想试试:
- -不错,但要花钱。(最多两名开发者免费)李>
- -漂亮、受欢迎、免费
- -免费,没问题李>
- -还是很好李>
Wiki:在许多(甚至相当发达的)项目中,这样的Wiki都是空的,这是不好的(因为它让人们想到“如果没有人在这个Wiki中写作,这怎么可能是一个伟大的软件”) 我知道已经提到了Maven,但我认为比使用Maven更重要的是将工件发布到Maven存储库,以便使用Maven的项目可以使用它们。 然后,您的项目页面还可以提供到repo的直接链接,以便it服务器作为可下载内容的存储空间 同样,制作jars OSGi捆绑包——也就是说广告