2013-05-15 2 views
9

Maven 어셈블리 플러그인을 사용하여 Java 프로젝트의 바이너리를 fat jar (jar-with-dependencies 설명자)로 패키지화했습니다. 이것은 꽤 잘 작동합니다.Maven : jar-with-dependencies와 함께 소스 코드 배포

질문 : 컴파일 된 클래스 파일과 함께 내 프로젝트의 소스 파일을 어떻게 포함시킬 수 있습니까? 어떻게해야 하는지를 알기 위해 Maven 문서를 살펴 보았으나 아무것도 찾을 수 없었다.

감사합니다.

내 pom.xml 파일은 다음과 같습니다

<project> 
... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
        <finalName>${pom.artifactId}-${pom.version}</finalName> 
        <appendAssemblyId>false</appendAssemblyId> 
        <outputDirectory>${project.basedir}/bin/</outputDirectory> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

답변

6

가장 간단한 솔루션은 사전 정의 된 기술자 src을 사용하는 것입니다하거나 미리 정의 된 기술자 project 사용하는 것이 더 좋을 수 있습니다

<descriptorRefs> 
    <descriptorRef>jar-with-dependencies</descriptorRef> 
    <descriptorRef>src</descriptorRef> 
    </descriptorRefs> 

또는를 다른 옵션은 다음과 같이 될 것이다 :

<descriptorRefs> 
    <descriptorRef>jar-with-dependencies</descriptorRef> 
    <descriptorRef>project</descriptorRef> 
    </descriptorRefs> 
+0

고마워요! 소스를 같은 항아리에 넣으려고 계획했기 때문에 이것은 내가 염두에 두었던 것과 정확히 똑같지는 않습니다. 그러나 이것은 아마도 충분하거나 더 좋습니다. – Johannes

+0

조금씩 다릅니다. 필자는 릴리스의 경우에만이 작업을 수행하고 회사 pom의 릴리스 구성에서 이러한 목적으로 maven-source-plugin을 사용하도록 제안합니다. 이것은 모든 SNAPSHOT 배포와 함께 소스 패키지를 생성하도록 향상 될 수 있습니다. 당신이가는 길을 선택하는 것이 당신의 차례입니다. – khmarbaise

3

가로인가 바이너리와 소스 코드를 뚱뚱한 항아리로 배포하기로 결정한 구체적인 요구 사항은 무엇입니까? 일반적으로 바이너리와 소스 파일은 함께 배포되지만 별도의 jar 파일로 배포됩니다. Maven Central의 많은 프로젝트에서이 접근 방식을 사용하고 있으며 Nexus 및 Artifactory와 같은 저장소도이를 지원합니다. 이 옵션을 선택하면 maven-source-plugin은 친구입니다. documentation에서 : 다음

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>attach-sources</id> 
     <goals> 
     <goal>jar</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

그리고 mvn source:jar을 실행합니다. configuration options에 대한 웹 페이지를 참조하십시오.

+0

팁 주셔서 감사합니다! hkmarbaise가 지적한 어셈블리 플러그인의 src 디스크립터 사용은 추가 플러그인이 필요 없기 때문에 조금 더 간단 해 보인다. – Johannes