Як створити та опублікувати корисну бібліотеку Java


9

Нещодавно я працював над класом Java, який генерує перестановки на список об'єктів. У будь-якому випадку, я хотів би, щоб ця бібліотека була запропонована громадськості, тому у мене є кілька питань:

  • Більшість бібліотек, які я бачу, мають це складне іменування пакунків, зокрема включаючи com/ org. Чи є умова для них чи permutationsдостатньо пакету?
  • Чи є певний формат для їх публікації? Чи слід включати окремі ВІЙНИ для вихідного коду / javadoc?
  • У мене є файли у сховищі GitHub. Я думаю, я можу подати файли там, але як змусити людей знайти мою репо?

Конвенції для пакета іменування є зверненим доменом інтернету
Daniel Моура

2
А якщо у мене немає домену?
Амір Рахум

1
@Amir: Тоді я думаю, що, можливо, щось подібне amirrachum.util.permutationsможе бути добре.
FrustratedWithFormsDesigner

Щось ще, напевно, ви хочете подумати - як ви хочете ліцензувати цей код? Чи може хтось із цим робити що завгодно? Ви хочете, щоб він використовувався лише в проектах FOSS або це добре з вами, якщо він використовується у власному програмному забезпеченні (за умови, що вони вам кредитують)? Подивіться на різні ліцензії з відкритим кодом (GPL, LGPL, Mozilla, Apache, MIT, BSD) і вирішіть, яку саме ви хочете використовувати.
MatrixFrog

Відповіді:


9
  • Стандартний спосіб опублікувати (крім вихідного коду на GitHub) - це офіційні випуски JAR / WAR до Maven Central, які багато (Maven, Gradle, Ant / Ivy) використовують інструменти побудови для залучення до бібліотек як залежність. Для цього найкращий спосіб - пройти процес Nexus .

  • Також вважається доброзичливим розміщення тих самих JAR / WARs на коді, що розміщує репо, як Sourceforge або GitHub.

  • З точки зору вашого домену. Я рекомендую придбати firstnamelastname.net/org/com і використовувати це як свою схему іменування (наприклад, для мене це net.martijnverburg.foobar). Інакше використання домену github, як запропонував @Daniel Moura, є хорошим.

  • Щоб оприлюднити його, блог про нього, щебетати про нього, подавати його на новини хакера, reddit, digg, slashdot, dzone, TSS, javaworld тощо

HTH!


+1 для процесу Nexus - дуже корисно для використання іншими розробниками та тому перегляньте свою бібліотеку
Gary Rowe

3

Якщо ви натиснули свій код на GitHub, то спільний доступ до вашої бібліотеки (банку) легко з JitPack .

Вашим користувачам потрібно буде просто додати сховище до свого build.gradle:

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

а потім ваш сховище GitHub як залежність:

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

JitPack діє як сховище Maven, схоже на Maven Central. Приємно те, що вам не потрібно завантажувати свою бібліотеку. За лаштунками JitPack перевірить код від GitHub і складе його. Коли ви публікуєте нову версію на GitHub, вона стає доступною для інших.

Також є посібник про те, як підготувати проект та приклади для додавання джерельної банки.

Не потрібно мати доменне ім’я, щоб ваш groupId став com.github.Username. Ви також можете використовувати це для іменування пакунків.


2

Більшість бібліотек, які я бачу, мають це складне іменування пакунків, зокрема включаючи com / org. Чи існує домовленість щодо них чи достатньо пакету перестановок?

Є рекомендації Oracle щодо того, як назвати ваші пакунки . Причиною цієї угоди про іменування є мінімізація дублікатів. Якщо всі просто використовували короткі, прості імена, стає більш імовірним, що проект включає два permutationпакети. Якби одна назва класу була однаковою, виникали б конфлікти імен. Речі можуть стати заплутаними для розробника, якщо немає іменних конфліктів, які перешкоджають вирішенню класів.

Якщо у вас є доменне ім’я, я б запропонував використовувати його. Якщо ви розміщуєте сервіс, такий як GitHub або Sourceforge, також буде достатньо використання шляху до вашого проекту. Незалежно від цього, будьте явні, щоб запобігти конфліктам чи плутанині.

Чи є певний формат для їх публікації? Чи слід включати окремі ВІЙНИ для вихідного коду / javadoc?

Немає конкретного формату. Принаймні, сценарій побудови джерела та конвенції (Make, Ant, Maven). Приємно мати попередньо складені JAR або WARs, але не важливо. Деякі проекти включають Javadoc у бібліотеці, інші можуть створити два JAR (один з Javadoc і один без). Також може бути хорошою ідеєю просто опублікувати свій Javadoc в Інтернеті, якщо це дозволяє рішення для хостингу проектів.

У мене є файли у сховищі GitHub. Я думаю, я можу подати файли там, але як змусити людей знайти мою репо?

Рекламуйте це. Почніть з показу кількох друзів. Блог про це. Поділіться посиланням в Інтернеті. Знайдіть когось, у кого є проблема, яку він може вирішити за допомогою цієї бібліотеки (але обов'язково розкрийте, що ви створили бібліотеку).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.