유용한 Java 라이브러리를 만들고 게시하는 방법


9

최근에 객체 목록 당 순열을 생성하는 Java 클래스를 연구했습니다. 어쨌든이 도서관을 일반인에게 제공하고 싶기 때문에 몇 가지 질문이 있습니다.

  • 내가 본 대부분의 라이브러리에는 특히 com/를 포함 하여이 복잡한 패키지 이름이 org있습니다. 이것에 대한 규칙이 permutations있습니까 , 아니면 패키지입니까?
  • 이를 게시하기위한 특정 형식이 있습니까? 소스 코드 / javadoc에 대해 별도의 WAR을 포함시켜야합니까?
  • GitHub 리포지토리에 파일이 있습니다. 파일을 제공 할 수 있지만 사람들이 내 레포를 찾도록하려면 어떻게해야합니까?

규칙 패키지 이름에 대한이 반전 된 인터넷 도메인입니다
다니엘 모 우라

2
도메인이 없다면?
Amir Rachum

1
@ 아미르 : 그럼 아마도 어쩌면 amirrachum.util.permutations좋을 것 같아요.
FrustratedWithFormsDesigner

당신이 생각하고 싶은 다른 것-이 코드의 라이센스를 어떻게 원하십니까? 누구든지 원하는대로 할 수 있습니까? FOSS 프로젝트에서만 사용하기를 원합니까 아니면 독점 소프트웨어에서 사용하는 경우에도 괜찮습니까? 다양한 오픈 소스 라이센스 (GPL, LGPL, Mozilla, Apache, MIT, BSD)를 살펴보고 사용할 라이센스를 결정하십시오.
MatrixFrog

답변:


9
  • GitHub의 소스 코드를 제외하고 게시하는 표준 방법은 Maven Central 에 대한 공식 JAR / WAR 릴리스를 사용하는 것입니다. Maven Central 은 많은 (Maven, Gradle, Ant / Ivy) 빌드 도구가 라이브러리를 종속성으로 가져 오는 데 사용합니다. 이렇게하는 가장 좋은 방법은 Nexus 프로세스를 거치는 것 입니다.

  • Sourceforge 또는 GitHub와 같은 코드 호스팅 리포지토리에서 동일한 JAR / WAR을 호스팅하는 것도 친숙한 것으로 간주됩니다.

  • 도메인 측면에서. firstnamelastname.net/org/com을 구입하여 이름 지정 체계로 사용하는 것이 좋습니다 (예 : net.martijnverburg.foobar). 그렇지 않으면 @Daniel Moura가 제안한 github 도메인을 사용하는 것이 좋습니다.

  • 그것을 홍보하려면 블로그, 블로그, 해커 뉴스, reddit, digg, slashdot, dzone, TSS, javaworld 등에 제출하십시오.

HTH!


Nexus 프로세스 +1-다른 개발자가 내 라이브러리를 사용하고 검토하도록하는 데 매우 유용합니다.
Gary Rowe

3

코드를 GitHub에 푸시 한 경우 JitPack을 사용하면 라이브러리 (jar)를 쉽게 공유 할 수 있습니다 .

사용자는 저장소를 build.gradle에 추가하기 만하면됩니다.

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

그런 다음 GitHub 저장소를 종속성으로 사용하십시오.

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

JitPack은 Maven Central과 유사한 maven 저장소 역할을합니다. 좋은 점은 라이브러리를 업로드 할 필요가 없다는 것입니다. 뒤에서 JitPack은 GitHub에서 코드를 체크 아웃하고 컴파일합니다. GitHub에 새 릴리스를 게시하면 다른 사람들도 사용할 수있게됩니다.

또한이 가이드 소스 항아리를 추가하기위한 프로젝트 및 예제를 준비하는 방법은.

groupId가 없어도 groupId가 com.github.Username이됩니다. 패키지 이름 지정에도 사용할 수 있습니다.


2

내가 보는 대부분의 라이브러리에는 특히 com / org를 포함하여이 복잡한 패키지 이름이 있습니다. 이것에 대한 규칙이 있거나 순열 패키지가 충분합니까?

패키지 이름을 지정하는 방법에 대한 Oracle의 권장 사항 이 있습니다 . 이 명명 규칙의 이유는 중복을 최소화하기위한 것입니다. 모두가 짧고 간단한 이름을 사용하면 프로젝트에 두 개의 permutation패키지 가 포함될 가능성이 높아집니다 . 하나의 클래스 이름이 동일하면 이름 충돌이 발생합니다. 클래스의 해결을 방해하는 이름 충돌이 없으면 개발자에게 혼란을 줄 수 있습니다.

도메인 이름이 있다면 그 이름을 사용하는 것이 좋습니다. GitHub 또는 Sourceforge와 같은 서비스에서 호스팅하는 경우 프로젝트 경로를 사용하면 충분합니다. 어쨌든, 갈등이나 혼란을 방지하기 위해 명시하십시오.

이를 게시하기위한 특정 형식이 있습니까? 소스 코드 / javadoc에 대해 별도의 WAR을 포함시켜야합니까?

특정 형식이 없습니다. 최소한 소스 및 컨벤션 빌드 스크립트 (Make, Ant, Maven). 사전 컴파일 된 JAR 또는 WAR을 갖는 것이 좋지만 필수는 아닙니다. 일부 프로젝트에는 라이브러리에 Javadoc이 포함되어 있고, 다른 프로젝트에는 두 개의 JAR (Javadoc이 있고 다른 하나가없는)이 있습니다. 프로젝트 호스팅 솔루션이 허용하는 경우 Javadoc을 인터넷에 게시하는 것이 좋습니다.

GitHub 리포지토리에 파일이 있습니다. 파일을 제공 할 수 있지만 사람들이 내 레포를 찾도록하려면 어떻게해야합니까?

그것을 광고하십시오. 몇 명의 친구들에게 보여주십시오. 그것에 대한 블로그. 인터넷에서 링크를 공유하십시오. 이 라이브러리를 사용하여 해결할 수있는 문제가있는 사람을 찾으십시오 (그러나 라이브러리를 만들었다 고 공개해야합니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.