2015-01-17 16 views
-3

我知道這不是嚴格涉及到編程,如果你認爲這應該移動請讓我知道。包裝GPL許可罐子在我的罐子裏,但沒有使其開放源代碼

我有一箇中等大小的Java服務器,我使用各種庫編寫。 我很想知道是否可以將庫罐打包到我的軟件Jar文件中,而無需重新分配我的源代碼(例如,無需使我的軟件開源)。

隨着包裝我的意思是把罐子裏面我自己的jar,而不是他們的內容,並使用Eclipse jarinjar裝載機來使用它們。

這是最後的罐內部的示例文件結構:

/mysource/* 
/org/eclipse/jarinjarloader/* 
/library1.jar 
/library2.jar 

特別地,這些是我使用的庫:

MySQL connector/J (license: GPL) 
A few libraries licensed with Apache Software License version 2.0 

我想避免使庫分開下載的因爲我希望避免在運行我的程序之前強制每個用戶設置類路徑。

那麼,我可以用這種方式打包庫嗎?

+2

我認爲這可能是題外話題,因爲它是關於開源許可,而不是編碼。 – Mureinik

+4

我認爲這可能是無關緊要的,因爲它不是關於編程,而是關於法律建議。 – RealSkeptic

+0

我應該在哪裏發佈呢? – Iamsomeone

回答

2

如果許可證是GPL並且只在服務器上運行,那麼您可以在服務器上使用GPL代碼。如果您以任何形式向用戶分發軟件(包括通過瀏覽器),那麼您還必須發佈源代碼。如果軟件只是位於後端,並且永遠不會分發,那麼您可以做任何事情。

如果代碼是AGPL,那麼即使它在服務器後面,如果軟件以任何方式通過互聯網或第三方進行交互,您也必須發佈源代碼。

如果它是Apache許可的,那麼你可以使用它,但你一般希望。

+0

是否可以直接在我的jar中使用他們的源代碼(沒有jar嵌入)而不必釋放所有東西?當然,圖書館會提到 – Iamsomeone

+0

以前的評論依然存在。什麼是許可證?這將決定你必須做什麼。如果你不確定,那麼釋放源代碼或不要使用其他人的源代碼。我的一般感覺是,如果您不確定,那麼如果您向用戶發佈源代碼,則可能不會損失太多。 – BuckFilledPlatypus

+0

一般來說,我想避免釋放我的來源。我想使用的庫都是根據apache 2.0軟件許可獲得許可的。 – Iamsomeone