2012-09-12 19 views
15

Tôi muốn xây dựng một tệp .jar với các phụ thuộc trong maven. Thật không may tôi phải bao gồm một số .jars bên ngoài trong đường dẫn của tôi. Khi tôi bây giờ cố gắng để xây dựng dự án này với gói maven tôi sẽ nhận được một lỗi rằng những người bên ngoài .jars không được tìm thấy.Làm thế nào để bao gồm các lọ bên ngoài trong quá trình xây dựng maven jar?

Làm cách nào để điều chỉnh tệp pom của tôi để thêm các lọ đó? hiện tại:

<plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>copy-dependencies</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>copy-dependencies</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> 
          <overWriteReleases>false</overWriteReleases> 
          <overWriteSnapshots>false</overWriteSnapshots> 
          <overWriteIfNewer>true</overWriteIfNewer> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2-beta-4</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
    </plugins> 

Trả lời

13

Bạn có thể bao gồm các lọ bên ngoài trong xây dựng đường dẫn của bạn như sự phụ thuộc với <scope>system</scope> .

Kiểm tra này link

+0

cảm ơn, điều này làm việc tốt cho trường hợp của tôi. –

+6

có vẻ đúng, nhưng nếu nó không phải là một phần của JDK, như ví dụ trích dẫn. Điều gì sẽ xảy ra nếu bạn muốn tham khảo một JAR trong cùng thư mục với pom chẳng hạn? (trong thư mục dự án) – mmcrae

+2

Vâng và tốt, NHƯNG mà dep sẽ KHÔNG được đóng gói với bình/chiến tranh của bạn. – demaniak

2

Một giải pháp đơn giản cho điều này là để thêm nó vào kho maven địa phương

Một cách để làm là thông qua mvn cài đặt lệnh như đề xuất trong bài trước.

Một cách dễ dàng khác là, 1) Trong nhật thực của bạn, nhấp chuột phải vào dự án chọn tùy chọn Maven. 2) Chọn Cài đặt hoặc triển khai một tạo phẩm cho tùy chọn kho lưu trữ maven và nhấp vào tiếp theo. 3) Nhấp vào browse bên cạnh hộp kiểm tập tin Artifact & chọn tập tin 4 jar của bạn) Nhập groupId và artifactId và phiên bản đảm bảo tạo pom & tạo checksum được kiểm tra & bao bì là jar

Bấm lớp sơn hoàn thiện, wallah !!! công việc của bạn được thực hiện bình được thêm vào trong kho lưu trữ cục bộ của bạn mà bạn có thể xác định trong thư mục setting.xml hoặc m2

Bây giờ chỉ cần thêm phụ thuộc maven đơn giản theo phiên bản jar của GroupId, ArtifactId & mà bạn đã nhập theo nhập khẩu và đó là nó jar bên ngoài của bạn sẽ được đóng gói bởi maven.

2

Bạn cần sử dụng dưới lệnh để thêm jar bên ngoài vào thư mục .m2

mvn install:install-file -Dfile=[JAR] -DgroupId=[some.group] -DartifactId=[Some Id] -Dversion=1.0.0 -Dpackaging=jar 

này sẽ thêm jar đưa ra trong thư mục .m2 của bạn. Sau đó đi đến pom.xm và chỉ cần thêm sự phụ thuộc với id nhóm được cho, id tạo tác và phiên bản.