将jar文件加到Maven的local repository中

  对于Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那么我们就需要手动将自己下载的jar文件加入到Maven的local reposotory中了,此时我们需要向Maven提供用于识别jar文件(可能多个)的groupId, artifactId和version等信息。

  我并不打算讲怎么将一个下载的jar库加入到local repository中,我们将自己建立一个jar库,比如我们有一个最简单的HelloWorld类HelloWorld.java:

package com.thoughtworks.davenkin;

public class HelloWorld{     public void sayHello()         {             System.out.println("Hello, World");         }}

  我们希望将HelloWorld.java打包成jar文件安装在Maven的local repository中以便其它程序使用。

  编译打包hello-world.jar后,为了符合Maven的规定,需要给hello-world.jar一个版本号,故将hello-world.jar改名为hello-world-1.0.jar,此后便可以用mvn来安装此包到Maven的local repository中了:

mvn install:install-file -Dfile=path/to/hello-world-1.0.jar -DgroupId=com.thoughtworks.davenkin -DartifactId=hello-world -Dversion=1.0 -Dpackaging=jar

  

  其中,-Dfile选项应给出需要安装jar文件的路径,在Linux/Mac下,jar文件将被安装在以下目录:

~/.m2/repository/com/thoughtworks/davenkin/hello-world/1.0/hello-world-1.0.jar

  

  现在,我们的hello-world-1.0.jar便可以被其它Maven项目所使用了,为此创建一个Maven工程:

mvn archetype:generate-DgroupId=com.thoughtworks.davenkin.demo -DartifactId=helloworld-demo -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0

  

  此时将在当前目录下自动创建helloworld-demo子目录,切换到helloworld-demo目录,删除已有的App.java,并创建自己的Main.java文件

rm src/main/java/com/thoughtworks/davenkin/demo/App.java
touch src/main/java/com/thoughtworks/davenkin/demo/Main.java

  

  将以下内容加入到Main.java文件中:

package com.thoughtworks.davenkin.demo;

import com.thoughtworks.davenkin.HelloWorld;

public class Main {     public static void main(String[] args)        {              new HelloWorld().sayHello();        }}

  

  接下来是最重要的一步,修改pom.xml文件以加入对HelloWorld类的依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>

  <groupId>com.thoughtworks.davenkin.demo</groupId>  <artifactId>demo</artifactId>  <version>1.0</version>  <packaging>jar</packaging>

  <name>demo</name>  <url>http://maven.apache.org</url>

  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>

  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>    <dependency>      <groupId>com.thoughtworks.davenkin</groupId>      <artifactId>hello-world</artifactId>      <version>1.0</version>      <scope>compile</scope>    </dependency>  </dependencies></project>

  

  以上高亮部分为我们手动加入的,Maven会根据artifactId和version拼出所依赖jar包的名字,即artifactId-version.jar,对于我们的例子,artifactId为hello-world,version为1.0,所得到的jar文件为hello-world-1.0.jar,这也是为什么我们在一开始时需要将hello-world.jar的名字改为hello-world-1.0.jar的原因。

  接下来便可以编译我们的Main.java了:

mvn compile

  

  编译结果会放在target文件夹下。

  到现在,我们的例子便可以运行了,在工程根目录下(该例为hello-world-demo)输入以下命令:

mvn exec:java -Dexec.mainClass="com.thoughtworks.davenkin.demo.Main"

  

  在笔者的机器上输出为:

[INFO] Scanning for projects...[INFO]                                                                         [INFO] ------------------------------------------------------------------------[INFO] Building demo 1.0[INFO] ------------------------------------------------------------------------[INFO] [INFO] >>> exec-maven-plugin:1.2.1:java (default-cli) @ demo >>>[INFO] [INFO] <<< exec-maven-plugin:1.2.1:java (default-cli) @ demo <<<[INFO] [INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ demo ---Hello, World[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 2.423s[INFO] Finished at: Wed Feb 15 21:33:47 CST 2012[INFO] Final Memory: 5M/81M[INFO] ------------------------------------------------------------------------

  

  以上高亮部分即为我们期望的程序输出,当然你也可以用传统的java命令来运行,此时需要将hello-world-1.0.jar加入到classpath中,输入:

java -cp ~/.m2/repository/com/thoughtworks/davenkin/hello-world/1.0/hello-world-1.0.jar:target/classes/  com.thoughtworks.davenkin.demo.Main

  

  输出为:

Hello, World
时间: 2024-10-26 07:57:08

将jar文件加到Maven的local repository中的相关文章

Maven如何手动添加依赖的jar文件到本地Maven仓库

大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是不是在Maven仓库(http://repo1.maven.org/maven2/)的.那我们怎么将那些不存在Maven仓库中的包加入到本地的Maven库中呢?很简单.这里以IKAnalyzer.jar包为例进行讲解. 第一步:将IKAnalyzer.jar包存放在一个文件夹中,比如mylib文件夹 第二步:建一个IKAnalyzer.jar包相关的pom.xml文件,需要在pom.xml中定义其maven坐标及其相应的依赖代码即可

maven将jar文件加入到maven库

mvn install:install-file-DgroupId=包名-DartifactId=项目名-Dversion=版本号-Dpackaging=jar-Dfile=jar文件所在路径 1,本地D盘中有个jar,例如:D:\QRCode.jar 2,cmd 中执行mvn install 命令格式为:mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id>-DartifactId=<artif

Maven 迁移local repository

1.1 Maven仓库主要有2种: remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问 local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户名}\.m2\repository目录 1.2 Remote Repository主要有3种: 中央仓库:http://repo1.maven.org/maven2/ 私服:内网自建的maven repository,其URL是一个内部网址 其他公共仓

如何设置maven的local repository目录

step1:默认会放在~/.m2/repository目录下 (“~”代表用户的目录,比如windows下一般都是C:\Documents and Settings\[你的用户名]\.由于“Documents and Settings”中含有“空格”会导致“Illegal character in path”异常) 安装Maven后我们会在用户目录下发现.m2 文件夹.默认情况下,该文件夹下放置了Maven本地仓库.m2/repository.所有的Maven构件(artifact)都被存储到该

maven 手动复制repository 里的jar包

对于Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那么我们就需要手动将自己下载的jar文件加入到Maven的local reposotory中了,此时我们需要向Maven提供用于识别jar文件(可能多个)的groupId, artifactId和version等信息. 我并不打算讲怎么将一个下载的jar库加入到local repository中,我们

将下载的本地的jar手动添加到maven仓库

将下载到本地的JAR包手动添加到Maven仓库 常用Maven仓库网址:http://mvnrepository.com/http://search.maven.org/http://repository.sonatype.org/content/groups/public/http://people.apache.org/repo/m2-snapshot-repository/http://people.apache.org/repo/m2-incubating-repository/ 演示添

Maven使用第三方jar文件的两种方法 转

在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库.但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求. 方法一: 将本地的jar文件安装到本地repository中,具体步骤如下:1.准备好本地的jar文件2.使用如下命令安装jar文件      mvn install:install-file -Dfile=abc.jar      -DgroupId=com

Maven使用第三方jar文件的两种方法&lt;转&gt;

http://www.cnblogs.com/sekai/p/5932206.html 今天用上了.. ===================== 在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库.但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求. 方法一: 将本地的jar文件安装到本地repository中,具体步骤如下:1.准备好本地的jar文件2.使用如

How to include custom library into maven local repository?--转

原文地址:https://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/ There are 2 cases that you need to issue Maven’s command to include a jar into the Maven local repository manually. The jar you want to use doesn’t exist in