2011-12-16 23 views
12

có JRE 1.6 có sẵn trong một số kho lưu trữ Maven công khai mà chúng tôi có thể ủy quyền trong Nexus của chúng tôi không?JRE 1.6 trong kho lưu trữ Maven (công khai hoặc riêng tư)

nếu không, ai đó có thể vui lòng cung cấp gợi ý về cách triển khai JRE đến kho lưu trữ Maven không?

+0

Đây là một yêu cầu lạ. 'JRE' không chính xác là một thư viện như' jar'. Tôi không chắc chắn nếu nó có thể ở tất cả. –

+0

Làm thế nào chính xác bạn mong đợi điều này để làm việc? –

+1

Tôi cần phải đưa JRE vào phân phối trong xây dựng maven của tôi. Tôi chỉ có thể tải nó như là một phần của quá trình xây dựng, nhưng không có gì đảm bảo rằng Oracle sẽ giữ các bản phân phối JRE ở cùng một vị trí ... đó là lý do tại sao tôi đang nghĩ đến việc đưa JRE vào kho lưu trữ maven của tôi (vì JRE là một thứ nhị phân sau tất cả các :)). có lẽ đây là một ý tưởng tồi và tự động tải xuống từ trang web của Oracle sẽ tốt hơn ... – Alex

Trả lời

13

đây là giải pháp tôi tìm thấy:

  • Zip các JRE (jre-linux32-1.6.0.23.zip và jre-jre-win32-1.6.0.zip trong trường hợp của tôi).
  • Tải chúng lên kho lưu trữ Nexus của bạn thông qua giao diện người dùng web (hoặc triển khai thủ công bằng "mvn"), đặt thông số tạo tác: groupid = "oracle" artifactid = "jre-win32"/"jre-linux32", đặt phiên bản và loại đóng gói "zip".
  • sửa đổi tệp pom.xml của bạn để tải xuống và giải nén sự phụ thuộc trong quá trình xây dựng (tôi đã ràng buộc nó phụ thuộc vào giai đoạn "chuẩn bị gói").

    <build> 
        <plugins> 
         <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-dependency-plugin</artifactId> 
          <version>2.4</version> 
          <executions> 
           <execution> 
            <id>copy</id> 
            <phase>prepare-package</phase> 
            <goals> 
             <goal>unpack</goal> 
            </goals> 
            <configuration> 
             <artifactItems> 
              <artifactItem> 
               <groupId>oracle</groupId> 
               <artifactId>jre-win32</artifactId> 
               <version>1.6.0.23</version> 
               <type>zip</type> 
               <overWrite>false</overWrite> 
               <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> 
               <!--<destFileName>optional-new-name.jar</destFileName>--> 
              </artifactItem> 
              <artifactItem> 
               <groupId>oracle</groupId> 
               <artifactId>jre-linux32</artifactId> 
               <version>1.6.0.23</version> 
               <type>zip</type> 
               <overWrite>false</overWrite> 
               <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> 
               <!--<destFileName>optional-new-name.jar</destFileName>--> 
              </artifactItem> 
             </artifactItems> 
             <outputDirectory>${project.build.directory}/wars</outputDirectory> 
             <overWriteReleases>false</overWriteReleases> 
             <overWriteSnapshots>true</overWriteSnapshots> 
            </configuration> 
           </execution> 
          </executions> 
         </plugin> 
        </plugins> 
    </build> 
    

đó là nó. JRE sẽ được tải xuống và trích xuất thành thư mục target \ alternateLocation.

bạn có thể sử dụng mục tiêu "sao chép" thay vì "giải nén" nếu bạn chỉ muốn sao chép các tệp ZIP mà không cần giải nén chúng.

+2

Tại sao bạn không sử dụng các trình phân loại thay vì các tạo phẩm? Sau khi tất cả các trình phân loại chính xác ở đây để phân biệt giữa các kiến ​​trúc khác nhau. – Riduidel

-2

Here bạn có thể đọc cách cài đặt lọ vào repo maven. Nhưng tại sao bạn muốn cài đặt các JRE lọ trong repo maven?

1

Yêu cầu của bạn là trường hợp sử dụng hợp lệ. Nhưng IMHO, đưa nó vào một maven-repo không phải là cách để làm điều đó.

Các ứng dụng khác, đạt được yêu cầu này bằng cách nhận các tệp thi hành trực tiếp từ nhà cung cấp. Đối với một ví dụ xây dựng các máy chủ như Hudson/Jenkins cần phải tải về Java/Maven khi người dùng lựa chọn và AFAIR Jenkins tải chúng trực tiếp từ trang web của Oracle. (Vì oracle yêu cầu bạn đăng nhập trước khi tải xuống, họ sử dụng cơ chế SSO). Một giải pháp tương tự dọc theo những con đường đó sẽ phù hợp với bạn.

Ngay cả khi bạn lưu trữ JRE của mình trong m2-repo, có một số vấn đề bảo mật nhất định. JRE là một chương trình nhạy cảm. Ngay cả khi bạn nói rằng bạn đã lưu trữ cùng một JRE từ oracle, tôi thà tải xuống từ oracle.

+0

Cảm ơn bạn đã bình luận. Tôi đang định tải xuống từ Oracle thực sự, nhưng họ chỉ có các tệp RPM và EXE, trong khi tôi cần một phiên bản ZIP. Một lựa chọn khác cho tôi sẽ sử dụng JavaWebStart để phân phối ứng dụng thay vì tạo ra một phân phối, nhưng đó là một chủ đề khác. – Alex

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