#chiroito ’s blog

Java を中心とした趣味の技術について

Oracle公式のMavenリポジトリを使う

Oracle が公開している Maven リポジトリを使うには以下 2 つのステップを実施します。

  1. ライセンスを確認
  2. Mavenの設定

この 2 つのステップが完了した後に、サンプルのプロジェクトを使用して設定が行なえていることを確認します。

参考:Oracle Mavenリポジトリの構成

ライセンスを確認

以下の URL にアクセスしてログインすると、Oracle Maven Repositoryのライセンスが表示されます。ライセンスを読み、同意いただける場合には [Accept License Agreement] を選択してください。
https://www.oracle.com/webapps/maven/register/license.html

プロファイルをお持ちでない方は、ログイン画面の [プロファイルの作成] からプロファイルを作成します。

Mavenの設定

Maven の設定は以下の 3 つを設定します。

  • リポジトリ
  • プラグインリポジトリ
  • 認証

リポジトリとプラグインリポジトリは、settings.xml もしくは pom.xml に設定します。 認証は settings.xml にライセンスを確認したプロファイルのユーザ名とスワードを設定します。今回のサンプルではパスワードを平文で保存しています。CIツールなどに配布したりセキュリティを気にする場合はmvn --encrypt-master-passwordmvn --encrypt-password を駆使してパスワードを暗号化しましょう。

上記 3 つを settings.xml に設定した例は下記になります。リポジトリとプラグインリポジトリはデフォルトで有効となるプロファイルとして設定しています。認証に使うユーザ名とパスワードは適宜指定してください。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
 <!-- リポジトリとプラグインリポジトリ -->
 <profiles>
  <profile>
   <id>OracleProfile</id>
   <activation>
    <activeByDefault>true</activeByDefault>
   </activation>
   <repositories>
    <repository>
     <id>oracle-repo</id>
     <url>https://maven.oracle.com</url>
    </repository>
   </repositories>
   <pluginRepositories>
    <pluginRepository>
     <id>oracle-repo</id>
     <url>https://maven.oracle.com</url>
    </pluginRepository>
   </pluginRepositories>
  </profile>
 </profiles>

 <!-- 認証 -->
 <servers>
  <server>
   <id>oracle-repo</id>
   <username>***@gmail.com</username>
   <password>*******</password>
   <configuration>
    <basicAuthScope>
     <host>ANY</host>
     <port>ANY</port>
     <realm>OAM 11g</realm>
    </basicAuthScope>
    <httpConfiguration>
     <all>
      <params>
       <property>
        <name>http.protocol.allow-circular-redirects</name>
        <value>%b,true</value>
       </property>
      </params>
     </all>
    </httpConfiguration>
   </configuration>
  </server>
 </servers>
</settings>

テスト

テストのため、WebLogic Server を使用して Java EE アプリケーションを作成するサンプルプロジェクトを以下からgit コマンドもしくは zip 形式でダウンロードしましょう。

GitHub - chiroito/weblogic-jee-quickstart

ダウンロードが終わったらパッケージングしてみます。ビルドが成功すれば設定がキチンと行なえています。

> cd weblogic-jee-quickstart
> mvn package
(略)
[INFO] WebLogic JEE QuickStart ............................ SUCCESS [  0.010 s]
[INFO] WebLogic JEE QuickStart - ejb ...................... SUCCESS [04:04 min]
[INFO] WebLogic JEE QuickStart - web ...................... SUCCESS [04:52 min]
[INFO] WebLogic JEE QuickStart - ear ...................... SUCCESS [ 21.866 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:17 min
[INFO] Finished at: 2017-04-04T00:36:20+09:00
[INFO] Final Memory: 22M/172M
[INFO] ------------------------------------------------------------------------

認証に失敗すると以下の様になります。(適当な位置で改行してます)

> mvn package
(略)
[ERROR] Failed to execute goal on project weblogic-ejb: 
Could not resolve dependencies for project chiroito.sample.ee:weblogic-ejb:jar:1.0.0-SNAPSHOT: 
Failed to collect dependencies at com.oracle.weblogic:weblogic-server-pom:pom:12.2.1-0-0: 
Failed to read artifact descriptor for com.oracle.weblogic:weblogic-server-pom:pom:12.2.1-0-0: 
Could not transfer artifact com.oracle.weblogic:weblogic-server-pom:pom:12.2.1-0-0 
from/to maven-oracle-repository (https://maven.oracle.com): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]

-Xオプションを付けてユーザ名とパスワードが設定している通りになっているか確認しましょう。設定した通りになっている場合は、もうちょっと待ってから再度試してみましょう。

> mvn -X package
(略)
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for 
https://maven.oracle.com with username=***@gmail.com, password=***