2010-02-24 1 views
2

프로젝트를 위해 올인원 Jar를 제공하기 위해 생성 된 프로젝트의 패키지에 사이트의 플러그인을 통해 생성 된 프로젝트의 생성 된 사이트를 포함시킬 수 있는지 궁금해하고 있습니다. ? 이 아이디어는 매우 간단합니다. 우리는 "sample"이라는 프로젝트를 사용하여 API의 사용법을 보여 주며 API에 대한 사용자 문서와 그 사용법을 단일 번들로 제공하고자합니다. Maven을 사용하여 Jar 파일을 만들 수 있습니까?Maven 생성 사이트를 생성 된 패키지에 추가

미리 감사드립니다.

답변

5

site:jar을 사용하면 조립품 플러그인을 만들어 모든 것이 가능해야합니다.

+0

네, 이것은 흥미로운 해결책이 될 수 있습니다. 나는 그것을 시도 할 것이다. – reef

+0

비슷한 일을하고 싶습니다.이 작품이 당신에게 도움이 되었습니까? 좀 더 자세한 내용을 게시 할 수 있습니까? – Solubris

3

최근 Maven 3에 포함 된 maven 생성 사이트로 war 파일을 빌드하는 방법을 설명하기 위해 여기에 게시하고 있습니다. 허드슨이 BUILD_NUMBER 시스템 속성을 설정하여 활성화 한 프로필에 필요한 빌드 플러그인을 래핑했습니다. . 이 구성은 전쟁에 사이트 디렉토리를 추가하는 것 외에도 -javadoc.jar 아티팩트를 생성합니다 (attach-javadocs 실행이있는 별도의 maven-javadoc-plugin이이를 담당하고 필요하지 않은 경우 제거 할 수 있습니다).

<profiles> 
    <!-- We want the javadoc jar and the site within the war only when building on Hudson --> 
    <profile> 
     <activation> 
      <property> 
       <name>BUILD_NUMBER</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-site-plugin</artifactId> 
        <version>3.0-beta-3</version> 
        <configuration> 
         <reportPlugins> 
          <plugin> 
           <groupId>org.apache.maven.plugins</groupId> 
           <artifactId>maven-project-info-reports-plugin</artifactId> 
          </plugin> 
          <plugin> 
           <groupId>org.apache.maven.plugins</groupId> 
           <artifactId>maven-javadoc-plugin</artifactId> 
          </plugin> 
         </reportPlugins> 
        </configuration> 
        <executions> 
         <execution> 
          <id>attach-site</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>jar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <configuration> 
         <webResources> 
          <resource> 
           <!-- this is relative to the pom.xml directory --> 
           <directory>${project.build.directory}/site</directory> 
           <targetPath>doc</targetPath> 
          </resource> 
         </webResources> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-javadoc-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>attach-javadocs</id> 
          <goals> 
           <goal>jar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

여기는 동일한 프로필이지만 Maven2의 경우입니다. 이것은 maven2 hudson 플러그인에 의존하는 허드슨 프로젝트 설정이있는 경우에 유용합니다.

<profiles> 
    <!-- We want the javadoc jar and the site within the war only when building on Hudson --> 
    <profile> 
     <activation> 
      <property> 
       <name>BUILD_NUMBER</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <configuration> 
         <webResources> 
          <resource> 
           <!-- this is relative to the pom.xml directory --> 
           <directory>${project.build.directory}/site</directory> 
           <targetPath>doc</targetPath> 
          </resource> 
         </webResources> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-javadoc-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>attach-javadocs</id> 
          <goals> 
           <goal>jar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-site-plugin</artifactId> 
        <version>2.2</version> 
        <executions> 
         <execution> 
          <id>attach-site</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>jar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
     <reporting> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-project-info-reports-plugin</artifactId> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-javadoc-plugin</artifactId> 
       </plugin> 
      </plugins> 
     </reporting> 
    </profile> 
</profiles> 
+0

war 파일로 변환하는 방법은 무엇입니까? 필요한 것은 일반적인 web.xml 파일뿐입니다. 그것은 웹 응용 프로그램 컨테이너에 배포 가능하게 만들 것입니다. – spy

0

트릭은 패키지 전에 일어나는 상에 사이트를 생성 할 수 받는다는-사이트 플러그인을 구성하는 것입니다 (예를 들어, 준비 패키지) 다음 제대로 받는다는 전쟁 - 플러그인을 구성하는 웹 애플리케이션에 생성 된 사이트를 포함합니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-site-plugin</artifactId> 
    <version>3.5</version> 
    <executions> 
     <execution> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>site</goal> 
       <goal>stage</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <webResources> 
      <resource> 
       <directory>${basedir}/target/staging</directory> 
       <includes> 
        <include>**</include> 
       </includes> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 

Here이 구성을 사용하면 샘플 프로젝트를 찾을 수 있습니다. Here 라이브 데모.