我最近研究了一个Java类,该类针对每个对象列表生成排列。无论如何,我想将此库提供给公众,所以我有几个问题:
- 我看到的大多数库都具有这种复杂的包命名,特别是
com
/org
。是否有这些约定或permutations
包装足够? - 是否有发布这些内容的特定格式?是否应为源代码/ javadoc包括单独的WAR?
- 我将文件放在GitHub存储库中。我想我可以在此处提供文件,但是如何让人们找到我的存储库?
amirrachum.util.permutations
是不错的选择。
我最近研究了一个Java类,该类针对每个对象列表生成排列。无论如何,我想将此库提供给公众,所以我有几个问题:
com
/ org
。是否有这些约定或permutations
包装足够?amirrachum.util.permutations
是不错的选择。
Answers:
发布的标准方法(除了GitHub上的源代码)是将正式的JAR / WAR版本发布到Maven Central,许多构建工具(Maven,Gradle,Ant / Ivy)使用该版本将库作为依赖项引入。为此,最好的方法是完成Nexus流程。
将相同的JAR / WAR托管在诸如Sourceforge或GitHub之类的代码托管存储库中也被认为是友好的。
就您的域名而言。我建议您购买firstnamelastname.net/org/com并将其用作您的命名方案(例如,对我来说是net.martijnverburg.foobar)。否则使用@Daniel Moura建议的github域是一个不错的选择。
要对其进行公开,请在其博客上发布,然后在Twitter上发布,并将其提交给黑客新闻,reddit,digg,slashdot,dzone,TSS,javaworld等
HTH!
如果您已将代码推送到GitHub,则可以使用JitPack轻松共享库(jar)。
您的用户只需要将存储库添加到他们的build.gradle中:
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
}
然后将您的GitHub存储库作为依赖项:
dependencies {
// ...
compile 'com.github.YourUsername:Repo:Release'
}
JitPack充当类似于Maven Central的Maven存储库。令人高兴的是,您不必上载库。在后台,JitPack将从GitHub检出代码并进行编译。在GitHub上发布新版本时,其他人可以使用它。
不需要域名,因此您的groupId变为com.github.Username。您也可以将其用于程序包命名。
我看到的大多数库都具有这种复杂的软件包命名,特别是com / org。是否有这些约定或排列包足够?
有来自甲骨文如何命名你的包的建议。这种命名约定的原因是为了最大程度地减少重复项。如果每个人都简单地使用短而简单的名称,则一个项目将更可能包含两个permutation
软件包。如果一个类名相同,则将存在命名冲突。如果不存在妨碍类解析的命名冲突,则开发人员可能会感到困惑。
如果您有一个域名,我建议您使用它。如果您托管在GitHub或Sourceforge之类的服务上,则使用项目路径也就足够了。无论如何,要明确地防止冲突或混乱。
是否有发布这些内容的特定格式?是否应为源代码/ javadoc包括单独的WAR?
没有特定格式。至少,源代码和约定构建脚本(Make,Ant,Maven)。预编译JAR或WAR很好,但不是必需的。一些项目在库中包括Javadoc,其他项目可能会产生两个JAR(一个带有Javadoc,另一个不带有Javadoc)。如果您的项目托管解决方案允许的话,将Javadoc简单地发布在Internet上也是一个好主意。
我将文件放在GitHub存储库中。我想我可以在此处提供文件,但是如何让人们找到我的存储库?
刊登广告。首先向几个朋友展示它。关于它的博客。在Internet上共享链接。查找有问题的人,他们可以使用此库来解决(但请确保您透露自己是建立库的)。