2009-09-07 2 views
5

자바 프로젝트에서 자바 스크립트/HTML/CSS 코드를 메이븐 리포지토리에 저장하는 가장 좋은 방법은 무엇입니까?모범 사례 : Maven 저장소의 서버 측 코드를 호스팅하는 방법

포함 된 프로젝트를 포함 프로젝트에서 쉽게 "웹에 표시"할 수있는 방법이 있습니까?

예를 들어, 매우 유용한 tricks.js 파일을 mvn 저장소에 저장한다고 가정합니다.

그 다음

<script src="/some/thing/tricks.js"/> 

가 제공 될 수있는 tricks.js 파일을 야기하고 종속성으로 tricks.js 및 추가 웹 프로젝트를 생성 할 수 있습니까?

답변

6

외부 리소스는 아티팩트에 패키지화하여 리포지토리에 게시해야합니다 (단순한 아티팩트를 사용하기 위해 assembly을 지정하여 아티팩트가 무엇인지 확인하도록합니다). maven-dependency-plugin은 jar의 내용을 전쟁 프로젝트의 지정된 위치에 압축을 풉니 다. 그런 다음 해당 폴더는 maven-war-plugin에 대한 external web resources 디렉토리로 지정됩니다.

다음 구성은 my-resources의 내용을 target/external-resources 디렉토리에 압축을 풀고 src/main/resources에 정의 된 것처럼 해당 폴더의 내용을 전쟁에 포함시킵니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>unpack</id> 
     <phase>generate-resources</phase> 
     <goals> 
     <goal>unpack</goal> 
     </goals> 
     <configuration> 
     <artifactItems> 
      <artifactItem> 
      <groupId>name.seller.rich</groupId> 
      <artifactId>my-resources</artifactId> 
      <version>1.0.0</version> 
      <type>jar</type> 
      <overWrite>false</overWrite> 
      </artifactItem> 
     </artifactItems> 
     <outputDirectory>${project.build.directory}/external-resources</outputDirectory> 
     <overWriteReleases>false</overWriteReleases> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <webResources> 
     <resource> 
     <directory>${project.build.directory}/external-resources</directory> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 
2

jar 파일로 압축 한 다음 maven 플러그인으로 압축을 풀 수 있습니다.

+0

예, 좋습니다. – SingleShot

+0

GWT에서이 연습을 사용합니다. – merin

+0

필자는이 작업을 직접 수행 할 필요가 없지만 Maven의 아키텍처 및 표준에 대한 최선의 접근 방법 인 것 같습니다. – aperkins