有用なJavaライブラリを作成して公開する方法


9

私は最近、オブジェクトのリストごとに順列を生成するJavaクラスに取り組みました。とにかく、私はこのライブラリーを一般に提供してもらいたいので、いくつか質問があります。

  • 私が目にするほとんどのライブラリには、特にcom/ を含む、この複雑なパッケージの命名がありorgます。これらの規約はありpermutationsますか、それともパッケージで十分ですか?
  • これらを公開するための特定の形式はありますか?ソースコード/ javadocに個別のWARを含める必要がありますか?
  • GitHubリポジトリにファイルがあります。私はそこにファイルを提供できると思いますが、どのようにして私のリポジトリを見つけてもらえますか?

大会パッケージの命名については、逆インターネットドメインである
ダニエル・モウラ

2
ドメインがない場合はどうなりますか?
Amir Rachum、2011

1
@アミール:それなら私はおそらく何かamirrachum.util.permutationsが良いかもしれないと思う。
FrustratedWithFormsDesigner 2011

あなたがおそらく考えたい何か他のもの-このコードをどのようにライセンスしたいですか?誰もがそれでやりたいことを何でもできますか?FOSSプロジェクトでのみ使用したいですか、それともプロプライエタリソフトウェアで使用されていても問題ありませんか?さまざまなオープンソースライセンス(GPL、LGPL、Mozilla、Apache、MIT、BSD)を調べて、使用するライセンスを決定します。
MatrixFrog

回答:


9
  • (GitHubのソースコードは別として)公開するための標準的な方法は、Maven Centralへの正式なJAR / WARリリースを用意し、依存関係としてライブラリを取り込むために多くの(Maven、Gradle、Ant / Ivy)ビルドツールを使用することです。これを行うには、Nexusプロセスを実行するのが最善の方法です。

  • SourceforgeやGitHubなどのコードホスティングリポジトリで同じJAR / WARをホストすることもフレンドリーと見なされています。

  • ドメインの観点から。firstnamelastname.net/org/comを購入し、それを命名スキームとして使用することをお勧めします(たとえば、私にとってはnet.martijnverburg.foobarです)。それ以外の場合は、@ Daniel Mouraの提案に従ってgithubドメインを使用するのが適切です。

  • それを宣伝するために、それについてブログを作成し、それについてTwitterで送信し、ハッカーニュース、reddit、digg、slashdot、dzone、TSS、javaworldなどに送信してください。

HTH!


ネクサスプロセスの+1-他の開発者にライブラリを使用してもらうために非常に役立ちます。そのため、ライブラリを確認できます
Gary Rowe

3

コードをGitHubにプッシュした場合、ライブラリ(jar)の共有はJitPackを使用すると簡単です

ユーザーは、リポジトリをbuild.gradleに追加するだけです。

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

そして依存関係としてあなたのGitHubリポジトリ:

dependencies {
    // ...
    compile 'com.github.YourUsername:Repo:Release'
}

JitPackは、Maven Centralと同様のMavenリポジトリーとして機能します。良い点は、ライブラリをアップロードする必要がないことです。舞台裏では、JitPackがGitHubからコードをチェックアウトしてコンパイルします。GitHubで新しいリリースを公開すると、他のユーザーが使用できるようになります。

あり、ガイドのソースjarを追加するためのプロジェクトと例を準備する方法については。

groupIdがcom.github.Usernameになるように、ドメイン名を持っている必要はありません。パッケージの名前付けにも使用できます。


2

私が目にするほとんどのライブラリには、特にcom / orgを含む、この複雑なパッケージの命名があります。これらの規則はありますか、順列パッケージで十分ですか?

パッケージの命名方法については、Oracleからの推奨事項があります。この命名規則の理由は、重複を最小限にするためです。誰もが短くて単純な名前を単に使用すると、プロジェクトに2つのpermutationパッケージが含まれる可能性が高くなります。1つのクラス名が同じ場合、名前の競合が発生します。クラスの解決を妨げる名前の競合がない場合、開発者は混乱する可能性があります。

ドメイン名をお持ちの場合は、それを使用することをお勧めします。GitHubやSourceforgeなどのサービスでホストしている場合は、プロジェクトへのパスを使用するだけでも十分です。とにかく、衝突や混乱を防ぐために明確にしてください。

これらを公開するための特定の形式はありますか?ソースコード/ javadocに個別のWARを含める必要がありますか?

特定の形式はありません。少なくとも、ソースとコンベンションビルドスクリプト(Make、Ant、Maven)。プリコンパイルされたJARまたはWARを用意しておくと便利ですが、必須ではありません。ライブラリーにJavadocが含まれているプロジェクトもあれば、2つのJARが生成されるプロジェクトもあります(1つはJavadocあり、もう1つはなし)。また、プロジェクトホスティングソリューションで許可されている場合は、Javadocをインターネットで公開することをお勧めします。

GitHubリポジトリにファイルがあります。私はそこにファイルを提供できると思いますが、どのようにして私のリポジトリを見つけてもらえますか?

それを宣伝しなさい。数人の友人にそれを見せびらかすことから始めます。それについてのブログ。インターネット上のリンクを共有します。このライブラリを使用して解決できる問題を抱えている人を見つけます(ただし、ライブラリを作成したことを必ず公開してください)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.