2009-09-07 54 views
5

Cách tốt nhất để đặt mã javascript/html/css vào kho lưu trữ maven là gì, do đó dễ dàng sử dụng được bởi các dự án java.thực hành tốt nhất: cách lưu trữ mã phía máy chủ trong kho lưu trữ maven

Có cách nào để làm điều đó sao cho dự án đi kèm có thể dễ dàng thực hiện "hiển thị trên web" bởi dự án bao gồm không?

Ví dụ giả sử tôi viết tệp tricks.js rất hữu ích để đặt nó vào kho lưu trữ mvn.

Có thể tạo một dự án web mà thêm tricks.js như một sự phụ thuộc và sau đó làm

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

gây file tricks.js để được phục vụ?

Trả lời

6

Tài nguyên bên ngoài nên được đóng gói thành một tạo phẩm và được xuất bản vào kho lưu trữ (để đơn giản sử dụng tạo tác jar, nhưng bạn có thể chỉ định assembly để đóng gói zip thay thế để làm rõ nội dung đó là gì). maven-dependency-plugin đưa nội dung của lọ vào một vị trí được chỉ định trong dự án chiến tranh. Thư mục đó sau đó được chỉ định là một thư mục external web resources cho plugin maven-war.

Cấu hình sau sẽ giải nén nội dung của my-resources vào thư mục target/external-resources, sau đó bao gồm nội dung của thư mục đó trong cuộc chiến như thể chúng đã được xác định trong 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

Bạn có thể gói nó vào bình và sau đó giải nén nó bằng các plugin maven.

+0

Vâng, đó là phương pháp hay nhất. – SingleShot

+0

Tôi sử dụng phương pháp này với GWT. – merin

+0

Mặc dù tôi chưa bao giờ cần phải tự mình làm điều này, điều này dường như là cách tiếp cận tốt nhất với kiến ​​trúc và tiêu chuẩn của Maven. – aperkins

Các vấn đề liên quan