2016-09-30 17 views
6

Tôi phải làm theo hướng dẫn this để tạo một bình uber cho ứng dụng Apache Spark của tôi với maven.Phụ thuộc Apache Spark Maven để phát hành và phát triển ứng dụng

Tôi đã đặt tất cả Phụ thuộc Spark trong pom với <scope>provided</scope>. Điều này hoạt động rất tốt, nhưng bây giờ khi tôi chạy ứng dụng cục bộ, tôi gặp lỗi khi thiếu phụ thuộc Spark.

Hiện tại tôi phải xóa provided thẻ khỏi pom.

Làm cách nào tôi có thể chỉ cung cấp phụ thuộc tia lửa được cung cấp khi xây dựng ứng dụng để phát hành?

Tôi sử dụng Intellij làm IDE để phát triển ứng dụng.

Trả lời

1

Bạn có thể tạo các cấu hình Maven riêng biệt.

Lựa chọn tốt nhất là phải có phần dependencyManagment trong POM nơi bạn sẽ xác định phiên bản, sau đó trong các cấu hình bạn sẽ chỉ có groupId + artifactId + phạm vi

Ví dụ:

<profile> 
    <id>dev</id> 
    <activation> 
     <activeByDefault>false</activeByDefault> 
    </activation> 
    <dependencies> 
    <!-- Here Spark deps without provided --> 
     <dependency> 
      <groupId>...</groupId> 
      <artifactId>...</artifactId> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</profile> 
<profile> 
    <id>prod</id> 
    <dependencies> 
    <!-- Here Spark deps with provided --> 
     <dependency> 
      <groupId>...</groupId> 
      <artifactId>...</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
</profile> 
Các vấn đề liên quan