Yararlı bir Java kitaplığı nasıl oluşturulur ve yayınlanır


9

Son zamanlarda nesne listesi başına permütasyon üreten bir Java sınıfı üzerinde çalıştım. Her durumda, bu kütüphanenin halka sunulmasını istiyorum, bu yüzden birkaç sorum var:

  • Gördüğüm çoğu kütüphanede bu karmaşık paket adlandırma var, özellikle com/ org. Bunlar için bir sözleşme var mı yoksa permutationsyeterli bir paket mi?
  • Bunları yayınlamak için belirli bir biçim var mı? Kaynak kodu / javadoc için ayrı WAR'ler eklemeli miyim?
  • GitHub deposundaki dosyalarım var. Sanırım dosyaları orada sunabilirim, ama insanların repoumu bulmalarını nasıl sağlayabilirim?

Kongre paket adlandırma için ters internet domain
Daniel Moura

2
Etki alanım yoksa?
Amir Rachum

1
@Amir: O zaman bence böyle bir şey amirrachum.util.permutationsiyi olabilir.
SinirliWithFormsDesigner

Muhtemelen düşünmek istediğiniz başka bir şey - bu kodu nasıl lisanslamak istiyorsunuz? Herkes istediği her şeyi yapabilir mi? Sadece FOSS projelerinde kullanılmasını mı istiyorsunuz yoksa tescilli yazılımda kullanılıyorsa (size kredi vermeleri koşuluyla) iyi mi? Orada çeşitli açık kaynak lisanslarına bakın (GPL, LGPL, Mozilla, Apache, MIT, BSD) ve hangisini kullanmak istediğinize karar verin.
MatrixFrog

Yanıtlar:


9
  • Yayımlamanın standart bir yolu (GitHub'daki kaynak kodun dışında) Maven Central'a birçok Jven / WAR sürümü yayınlamaktır . Bunu yapmanın en iyi yolu Nexus sürecinden geçmektir .

  • Aynı JAR / WAR'ları Sourceforge veya GitHub gibi bir kod barındırma deposunda barındırmak da kolay kabul edilir.

  • Alan adınız açısından. Firstnamelastname.net/org/com satın almanızı ve bunu adlandırma düzeniniz olarak kullanmanızı öneririm (örneğin benim için net.martijnverburg.foobar). Aksi takdirde @Daniel Moura tarafından önerilen github alanını kullanmak iyi bir alan olabilir.

  • Bunu tanıtmak, blog hakkında, twitter, hacker haberleri, reddit, digg, slashdot, dzone, TSS, javaworld vb.

HTH!


Nexus işlemi için +1 - diğer geliştiricilerin kitaplığınızı kullanmasını ve dolayısıyla kitaplığınızı gözden geçirmesini sağlamak için çok yararlı
Gary Rowe

3

Kodunuzu GitHub'a aktardıysanız JitPack ile kitaplığınızı (jar) paylaşmak kolaydır .

Kullanıcılarınızın sadece build.gradle'a depo eklemeleri gerekir:

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

ve sonra bağımlılık olarak GitHub deponuz:

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

JitPack, Maven Central'a benzer bir maven deposu görevi görür. Güzel olan şey, kitaplığınızı yüklemeniz gerekmiyor. Sahne arkası JitPack GitHub kodunu kontrol eder ve derler. GitHub'da yeni bir sürüm yayınladığınızda, başkalarının kullanımına sunulacaktır.

Orada da bir rehber , bir kaynaklar kavanoz eklemek için bir proje ve örnekler hazırlamak için nasıl.

Etki alanı adınızın olması gerekmez, bu nedenle groupId dosyanız com.github.Username olur. Bunu paket adlandırma için de kullanabilirsiniz.


2

Gördüğüm çoğu kütüphane, özellikle com / org dahil olmak üzere bu karmaşık paket adlandırma özelliğine sahiptir. Bunlar için bir sözleşme var mı veya bir permütasyon paketi yeterli mi?

Oracle'ın paketlerinizi nasıl adlandıracağınız konusunda önerileri vardır . Bu adlandırma kuralının nedeni kopyaları en aza indirmektir. Herkes kısa, basit isimler kullandıysa, bir projenin iki permutationpaket içermesi daha olası hale gelir . Bir sınıf adı aynıysa, adlandırma çakışmaları olurdu. Sınıfların çözümlenmesini engelleyen adlandırma çakışmaları yoksa, geliştirici için işler kafa karıştırıcı olabilir.

Bir alan adınız varsa, bunu kullanmanızı öneririm. GitHub veya Sourceforge gibi bir hizmete ev sahipliği yapıyorsanız, projenizin yolunu kullanmak da yeterli olacaktır. Ne olursa olsun, çatışmaları veya karışıklığı önlemek için açık olun.

Bunları yayınlamak için belirli bir biçim var mı? Kaynak kodu / javadoc için ayrı WAR'ler eklemeli miyim?

Belirli bir formatı yok. En azından, kaynak ve bir kural oluşturma komut dosyası (Make, Ant, Maven). Önceden hazırlanmış JAR'ları veya SAVAŞLARI kullanmak güzel, ancak zorunlu değildir. Bazı projeler kütüphanede Javadoc'u içerirken, diğerleri iki JAR (biri Javadoc ile diğeri olmadan) üretebilir. Proje barındırma çözümünüz izin veriyorsa, Javadoc'unuzu internette yayınlamak da iyi bir fikir olabilir.

GitHub deposundaki dosyalarım var. Sanırım dosyaları orada sunabilirim, ama insanların repoumu bulmalarını nasıl sağlayabilirim?

Reklam verin. Birkaç arkadaşınıza göstererek başlayın. Bu konuda blog. İnternette bir bağlantı paylaşın. Bu kitaplığı kullanarak çözebilecekleri bir sorunu olan birini bulun (ancak kitaplığı yaptığınızı açıkladığınızdan emin olun).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.