如何通过maven下载JDK安装程序?

时间:2013-08-06 04:57:27

标签: maven maven-3 java jdk1.6

我尝试通过maven下载Oracle(Sun)Java JDK但没有成功:

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>jdk</artifactId>
    <version>6u45</version>
    <classifier>dlj-linux-i586</classifier>
    <type>bin</type>
</dependency>

我应该使用什么maven存储库来下载Oracle(Sun)Java JDK?

我想找到一种方法,可以通过maven下载jdk-6u45-linux-i586.bin JDK安装程序的DLJ版本,无需手动下载。

现在,如果未正确配置依赖项或错过了maven存储库,我会遇到标准的maven错误:

Missing:
----------
com.sun:jdk:bin:dlj-linux-amd64:6u45

  Try downloading the file manually from the project website.

  Then, install it using the command: 
      mvn install:install-file -DgroupId=com.sun -DartifactId=jdk -Dversion=6u45 -Dclassifier=dlj-linux-amd64 -Dpackaging=bin -Dfile=/path/to/file

3 个答案:

答案 0 :(得分:3)

  

如何通过maven下载JDK安装程序?

你做不到。 JDK安装程序不在任何公共Maven存储库中。如果是这样的话,甲骨文律师会发送“停止和停止”信件。

我知道你可以使用Maven exec插件(或类似的)“解决”Oracle的点击许可协议。但是,根据美国法律,这可能是非法的。当检察官决定为他做一个例子时,请考虑“weev”发生了什么。

答案 1 :(得分:3)

当你在linux机器上运行时,你可以使用maven-exec-plugin下载jdk来调用curl / wget:

...
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <!-- using curl -->
    <execution>
      <id>download oracle jdk (curl)</id>
      <phase>process-resources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>curl</executable>
        <arguments>
          <argument>-L</argument>
          <argument>--header</argument>
          <argument>Cookie: s_nr=1359635827494; s_cc=true; gpw_e24=blub; s_sq=[[]]; gpv_p24=novalue</argument>
          <argument>http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin</argument>
          <argumen>-o</argumen>
          <argument>${project.build.directory}/curl-jdk-6u45-linux-i586.bin</argument>
        </arguments>
      </configuration>
    </execution>
    <execution>
      <!-- using wget -->
      <id>download oracle jdk (wget)</id>
      <phase>process-resources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>wget</executable>
        <arguments>
          <argument>--no-cookies</argument>
          <argument>--header</argument>
          <argument>Cookie: s_nr=1359635827494; s_cc=true; gpw_e24=blub; s_sq=[[]]; gpv_p24=no value</argument>
          <argument>http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin</argument>
          <argument>-O</argument>
          <argument>${project.build.directory}/wget-jdk-6u45-linux-x64.bin</argument>
        </arguments>
      </configuration>
    </execution>
  </executions>
</plugin>
...

答案 2 :(得分:0)

我开发了maven plugin,可以从不同的提供商(Liberica,Adopt,SapMachine)下载并解压缩OpenJDK,这对于在发行版中准备跨平台JDK映像很有用

<plugin>
<groupId>com.igormaznitsa</groupId>
<artifactId>mvn-jlink-wrapper</artifactId>
<version>1.0.2</version>
<executions>
    <execution>
        <id>cache-jdk-8</id>
        <goals>
            <goal>cache-jdk</goal>
        </goals>
        <configuration>
            <jdkPathProperty>jlink.jdk.path</jdkPathProperty>
            <jdkCachePath>${project.build.directory}${file.separator}jdkCache</jdkCachePath>

            <provider>ADOPT</provider>
            <providerConfig>
                <release>jdk8u192-b12</release>
                <arch>x64</arch>
                <type>jdk</type>
                <impl>hotspot</impl>
            </providerConfig>

        </configuration>
    </execution>
</executions>