2011-01-27 37 views
6

Tôi là người mới trong thế giới của GAE. Tôi đang sử dụng eclipse và GAE SDK, tôi có thể triển khai lên đám mây với biểu tượng GAE và mọi thứ đều ổn. Vấn đề phát sinh khi tôi phải nhập số lượng phụ thuộc vô hạn, sau đó tôi muốn sử dụng maven cho điều đó. Tôi phát hiện ra rằng có một GAE maven Plugin đặc biệt gọi là: maven-gae-pluginTôi muốn sử dụng maven cho dự án GAE, làm thế nào để tôi làm?

Tôi có thể sử dụng thường xuyên maven chỉ để lấy dependencys hoặc tôi phải sử dụng các plugin đặc biệt GAE để làm điều này?

Cảm ơn

Trả lời

4

Bạn sẽ cần xác định tệp pom.xml cho dự án khai báo các phụ thuộc.
Khi bạn xây dựng với maven, các phụ thuộc sẽ được tải xuống từ các kho lưu trữ từ xa và được lưu trữ trong kho lưu trữ cục bộ của bạn $ {userhome} /. M2/repository.
Việc xây dựng maven cũng sẽ ràng buộc các phụ thuộc trong tập tin chiến tranh của bạn.

Cách dễ nhất để bắt đầu là tạo cấu trúc dự án bằng cách sử dụng nguyên mẫu.

Có 2 nguyên mẫu mà tôi đã cố gắng cho gae cho đến nay:

  1. gae-nguyên mẫu-gwt, được xây dựng liền kề với gae-maven-plugin, thấy article này.
  2. gae-eclipse-maven-archetype, xem này article và cũng lưu ý liên kết ở đầu bài viết để cập nhật bản phát hành.

Như tên cho thấy gae-eclipse-maven-archetype có hỗ trợ tốt hơn cho nhật thực, tôi đã nhận thấy rằng các cấu hình cho maven và nhật thực đã được xung đột với nhau, mà gae-eclipse-maven-archetype một chặng đường dài để giảm bớt.

Nếu dự án hiện tại của bạn không sử dụng maven directory structure, thì bạn sẽ có một trận chiến khó khăn. Các dự án Maven dễ cấu hình hơn nếu bạn cố gắng phù hợp với các giá trị mặc định là các tùy chọn hợp lý, thay vì chống lại hạt và phải ghi đè tất cả các tùy chọn cấu hình mặc định.

+1

Chỉ cần lưu ý về tích hợp.Các phụ thuộc App Engine hiện đang có sẵn tại kho trung tâm Maven mang lại một vấn đề khác. Trong SDK phiên bản datanucleus-appengine là 1.0.8.final trong khi trong kho chứa nó là 1.0.8. Điều đó đôi khi sẽ kết thúc bạn với cùng một JAR hai lần trong WEB-INF/lib. Tôi vẫn chưa tìm ra cách để giải quyết vấn đề này, nhưng một khi tôi phát hiện ra nó sẽ trở thành một phần của nguyên mẫu. Kính trọng, tác giả của nguyên mẫu-ga-eclipse-maven-archetype. – hleinone

+0

@hleinone công việc tuyệt vời trên nguyên mẫu, nó thực sự hữu ích - Cảm ơn! – crowne

1

Không có lý do gì bạn không thể sử dụng chỉ để quản lý phụ thuộc. Các phụ thuộc GAE là tất cả trong trung tâm maven.

Có một ghi lên về làm thế nào để thiết lập nó here

Cá nhân tôi sử dụng plugin nhật thực trong dev và các plugin maven khi chạy trong hội nhập liên tục.

Bí quyết chính là làm theo lời khuyên về việc đảm bảo rằng phụ thuộc maven là điều cuối cùng trong đường dẫn xây dựng của bạn theo phụ thuộc plugin GAE.

0

Thêm dòng sau vào pom.xml của bạn, điều chỉnh nó cho nhu cầu của bạn:

<project> 
... 
    <properties> 
    ... 
     <com.google.appengine-version>1.6.4</com.google.appengine-version> 
    ... 
    </properties> 
    <dependencies> 
    ...  
     <dependency> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-api-1.0-sdk</artifactId> 
      <version>${com.google.appengine-version}</version> 
     </dependency> 
    ... 
    </dependencies> 
... 
</project> 

Trong trường hợp bạn cần thêm bất kỳ hiện vật GAE liên quan đến bên cạnh appengine-api-1.0-sdk, có một cái nhìn đối với những hiện vật trong The Central Repository under com.google.appengine, sau đó thêm chúng vào danh sách phụ thuộc của pom.xml.

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