Maven 3 安裝第三方 JAR 向導翻譯及 Demo

由于種種原因,簡書等第三方平臺博客不再保證能夠同步更新,歡迎移步 GitHub:https://github.com/kingcos/Perspective/。謝謝!

注:
Maven 對于 JAR 的導入提供了巨大便利,
然而有些 JAR 包卻因為各種原因不存在于各大倉庫之中,
本文即是對 Maven 官網的教程翻譯,
希望可以幫到同樣困惑的人。

  • PS:
  • Maven,名詞,譯作專家,內行。在程序設計開發中,Maven 是一個較為強大但依賴網絡的項目管理工具。
  • 本文英語原文引自 Apache Maven 官網中的 Guide to installing 3rd party JARs
  • Last Published: 2016-07-09
  • 最新發行時間:2016 年 7 月 9 日

[翻譯]安裝第三方 JAR 向導

盡管很少發生,但有時會有第三方的 JAR,想要放入本地倉庫為自己的構建使用,這是因為這些 JAR 不存在于任何公共倉庫,例如 Maven 中心(倉庫)。JAR 必須被放置在本地倉庫的正確位置,這樣才能被 Apache Maven 獲取到。

為使得這一過程更加簡單,且不易出錯,我們已提供了相對簡單的 Maven-安裝-插件。在本地倉庫安裝 JAR 使用以下命令:

mvn install:install-file -Dfile=<JAR 文件路徑> -DgroupId=<組-id> \
    -DartifactId=<工件-id> -Dversion=<版本> -Dpackaging=<包>

如果也含有 pom 文件,你可以使用以下命令:

mvn install:install-file -Dfile=<JAR 文件路徑> -DpomFile=<pom 文件路徑>

使用 Maven-安裝-插件 v2.5 使得安裝 JAR 更加簡單。如果那個 JAR 文件由 Apache Maven 構建,其在 META-INF 的子目錄下還包括一個 pom.xml 文件,它將被默認讀入。在這種情形下,你只需要這么做:

mvn install:install-file -Dfile=<JAR 文件路徑>

[Demo]導入本地 ojdbc6.jar

  • Info:
  • JDK 1.8
  • Intellij IDEA

前言

由于目前使用的數據庫是 Oracle XE,所以在 Java 項目中需要導入其驅動包 ojdbc6.jar。而由于該 JAR 許可證過期,所以無法直接在 Maven 項目中導入。所以做此測試,驗證該向導是否可行,看看其中有木有什么坑。

Run

下載 ojdbc6.jar

官網下載 Oracle JDBC

按要求做出命令

如果在命令行,可以直接使用以下形式(注意將部分替換為你所要導入 JAR 的信息):

mvn install:install-file -Dfile=/Users/kingcos/Downloads/ojdbc6.jar -DgroupId=com.oracle \
    -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar

如果在 IDEA 配置中,第一行的 \\ 需要刪除,即:

mvn install:install-file -Dfile=/Users/kingcos/Downloads/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar

在 IDEA 右側找到 Maven Projects

入口

點擊 Maven Projects 菜單中的命令行按鈕

IDEA Maven 命令行

輸入剛才的命令并運行,查看下方區域是否顯示 BUILD SUCCESS

BUILD SUCCESS

如果出現失敗,要排查上述各項命令是否正確。
如果成功,即可在 pom.xml 中加入你剛剛導入的 JAR。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
添加依賴

測試

其實我們找到本地的 maven 倉庫,看看需要的 JAR 在不在就可以了,如下圖,我的 ojdbc6.jar 已經成功導入本地 maven 倉庫。

maven 本地倉庫目錄

不過,我也在這里寫了一個小的測試方法,即測試連接數據庫后,將查詢結果打印,運行成功且輸出正確,來測試剛才的配置是否正確。(本機測試成功)

測試類:App.java(由于直接測試,這里沒有更改該類名)

注意:將連接數據庫的代碼即 SQL 語句替換為自己數據庫的設置。

package com.maimeing;

import java.sql.*;

public class App {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;

        try {
            Class.forName("oracle.jdbc.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "demo", "123456");
            String sql = "select count(*) from person";
            pstm = conn.prepareStatement(sql);
            rs = pstm.executeQuery();

            while (rs.next()) {
                System.out.println(rs.getInt(1));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                pstm.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容