2012-02-10 21 views
7

私はライセンス情報をMavenプロジェクトに組み込むさまざまな方法とちょっと混乱しています。Maven Licensing

POMファイル内のタグにライセンスを入れると、私のプロジェクト全体がそのライセンスを持っていることになりますか?

license.txtファイルをプロジェクトに入れると、それはプロジェクトがそのライセンスに属していることを意味しますか?

私が持っているすべての.javaファイルの最初にライセンスを置くとどうなりますか?それは、私が書いたすべてのクラスが異なるライセンスを持つことができるということですか?

POMファイルのヘッダにライセンス情報がある場合はどうですか?これは、すべてのファイルがそのライセンスの下にあることを意味しますか?

混乱...

+0

私はこれに答えるようになりましたが、実際には聞こえるほど簡単ではないことに気付きました。私はそれが継承として機能すると言うでしょうが、本当にそうですか?そして可能な二重ライセンスはどうですか?また、答えが賢明な誰かを待っています... –

+4

**これはトピックではありませんので、この問題を閉じるには投票しています。**これはプログラミングやソフトウェア開発ではなく、ライセンスや法的問題**に関するものです。詳細については[こちらをご覧ください](http://meta.stackoverflow.com/a/274964/1402846)、[help/on-topic]を参照してください。 –

答えて

2

プロジェクトごとに必要なライセンスが異なります。 ApacheのライセンスとMIT、BSDのライセンスも必要です。コードに複数のライセンスを持たせるという考えは、企業が満足しているライセンスを選択できるようにすることです。

これらのライセンスは通常、META-INF/LICENSEに保存されています。 *ファイル(例:LICENSE.BSD、LICENSE.Apacheなど)。

POMでライセンスを定義すると、MavenサイトプラグインはMavenサイトを生成するときにその文字列を使用します。

プロジェクトの採用者の混乱を避けるために、それぞれのクラスの上にそれぞれのライセンスヘッダを置くことをお勧めします。

"シェーディング"(あなたのjarファイル内の他のライブラリのクラスを含む)を行う場合は、META-INFディレクトリにライセンスを持っている可能性が最も高いでしょう。それぞれのライセンスファイルの名前が単なるライセンスであれば、プロジェクトのライセンスを上書きする可能性があるので注意してください。

通常、ライセンスファイルはsrc/main/resources/META-INFディレクトリに配置します。

5

あなただけが混乱しているとは心配しないでください。この問題はJavaに限定されません。 Mavenは少なくともプロジェクトを独立したモジュールに分割する仕組みを提供し、それぞれはモジュールのライセンスを記述するメタデータファイル(POM)を持っています。

この問題は、ライセンスに準拠したいソフトウェアユーザーとして、(ソフトウェアパッケージ内の)すべてのファイルがすべて同じソフトウェアライセンスに属していることを確認する方法を教えてください。いくつかのオープンソースライセンスには微妙な違いと使用法の影響があります。

HPオープンソースのライセンススキャンシステム。

http://www.fossology.org/

これは、サードパーティのするライブラリのソースコードをスキャンし、ライセンスを発見する組織を可能にします。この分析は、時間の経過とともに現れる標準的なテクニック(READMEのライセンス、コメントヘッダーのライセンスなど)に従います。トンネルの終わりにいくつかの光がある

:この作業を外部委託することを好む組織のために、オープンソースソフトウェアのデータベースを維持し、商業企業があります。 Linuxの基盤は、この問題に対処するための取り組みを開始しました:

http://spdx.org/

それは素晴らしいアイデアです。ソフトウェア開発者が各ファイルのライセンスを明示的に指定できる単一の標準を作成します。グループの1つの本当の成功は、ライセンス名の共通リストを組み立てることです。唯一の欠点は、私が見ているように、開発者の採用とツールのサポートの欠如です。

結論として、私はすべてのファイルを同じライセンスの一部として保管することをお勧めします。あなたのモジュールがオープンソースであると仮定し、そのヘッダをコメントヘッダに示し、そのライセンスをMaven POMに公開します。あなたのコードがクローズドソースの場合は、META-INFディレクトリにライセンスを置くと役立ちますが、コンプライアンスの問題を完全には解決できないようです。

+0

+1:非常に良いコメント。 – carlspring

関連する問題