MavenリポジトリにないローカルjarをPom.xmlに書く方法

MavenセントラリポジトリにないローカルjarファイルをPom.xmlに書く方法のです。

MavenリポジトリにないローカルjarをPom.xmlに書く方法

以前、「Mavenプロジェクトにローカルjarファイルを追加する方法」で紹介した system スコープを使った方法では、mvn install するとWARNINGが発生して jar ファイルが含まれないということがわかりました。

具体的には、「Spring BootでORACLEデータベースに接続する方法」で紹介した ojdbc7.jar が mvn install で war ファイルに含まれないといった事象がおこりました。そのため war ファイルを Tomcat にデプロイしたら Web アプリが起動しないということになりました。

今回は warファイルにローカルjarを含める方法 をまとめておきます。


Pom.xmlの編集

ライブラリを指定します。この時、scope と systemPath は指定しません。

version は 12.1.0 と ORACLE の利用バージョンを適用していますが、なんでもいいです。


<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc7</artifactId>
  <version>12.1.0</version>
</dependency>

次に、maven-install-plugin を設定します。


<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-install-plugin</artifactId>
      <executions>
        <execution>
          <id>install-external</id>
          <phase>clean</phase>
          <configuration>
            <file>${basedir}/lib/ojdbc7.jar</file>
            <repositoryLayout>default</repositoryLayout>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0</version>
            <packaging>jar</packaging>
            <generatePom>true</generatePom>
          </configuration>
          <goals>
              <goal>install-file</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

mvn clean もしくは、Eclipse の[実行(Run As)]-[Maven Clean]を実行すれば、maven-install-plugin が動作します。Eclipseを使ってるので、ローカルリポジトリに ojdbc7.jar 関連のリポジトリが出来上がりました。

ローカルリポジトリにojdbc7.jar関連のリポジトリができた

コマンドの場合は、下記で OK かと。


mvn install:install-file -Dfile=ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0 -Dpackaging=jar
  • -Dfile: Jarファイルへのパス
  • -DgroupId: グループID
  • -DartifactId: アーティファクトID
  • -Dversion: バージョン
  • -Dpackaging: jar

mvn install もしくは、Eclipse の[実行(Run As)]-[Maven Install]を実行して war ファイルを確認しましょう。

おおお、ちゃんと入っていますね^^

ローカルjarがwarに含まれた

参考サイト

まとめ

出来上がった war ファイルを Tomcat にデプロイして動作確認したところ、正しく動作しました。ふう、一件落着ですね^^

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。