maven怎么配置本地jar包

maven怎么配置本地jar包,第1张

在Maven项目中使用本地JAR包有两种方法:

1. 使用system scope

<dependencies>

<dependency>

<groupId>org.richard</groupId>

<artifactId>my-jar</artifactId>

<version>1.0</version>

<scope>system</scope>

<systemPath>${project.basedir}/lib/my-jar.jar</systemPath>

</dependency>

</dependencies>

system scope引入的包,在使用jar-with-dependencies打包时将不会被包含,可以使用resources将本地包打进jar-with-dependencies

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<executions>

<execution>

<id>make-assembly</id>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

<finalName>xxx-jar-with-dependencies</finalName>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

<resources>

<resource>

<targetPath>lib/</targetPath>

<directory>lib/</directory>

<includes>

<include>**/my-jar.jar</include>

</includes>

</resource>

</resources>

</build>

生成的xxx-jar-with-dependencies.jar中,将会包含lib目录以及my-jar.jar,并且能够被在执行的时候被找到。

有的时候这种方法会实效,比如JDBCDriver在声明的饥李时候Class.forName("xxx.Driver")就会说找不吵肢悉到类,用下面两种方法就可以。

2. 将jar包安装到本地repository中

mvn install:install-file -Dfile=my-jar.jar -DgroupId=org.richard -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar

3. 添加 in project repository,在新机器上执行时就不用运行mvn install:install-file命令

<repository>

<id>in-project</id>

<name>In Project Repo</name>

<url>file://${project.basedir}/lib</url>

</repository>

<dependency>

<groupId>org.richard</groupId>

<artifactId>my-jar</artifactId>

<version>升乎1.0</version>

</dependency>

你的jar包及路径必须严格遵循格式:

/groupId/artifactId/version/artifactId-verion.jar

本例中: lib/org/richard/my-jar/1.0/my-jar-1.0.jar

是自己编写的一个jar文件,每次添加单个jar到maven本地桥没陵仓库的 *** 作如下: 1.建立一个新的文件夹,将jar文件存放敏戚在该文件夹下。 注意文件夹下最好只存放该文件。 2.在该文件夹下建立一个pom.xml文件察帆,在pom文件中定义其maven坐标。 3.在cmd窗口中执行以下命令: mvn install:install-file -Dfile=<path-to-file>-DgroupId=<group-id>-DartifactId=<artifact-id>-Dversion=<version>-Dpackaging=<packaging>

例如:

mvn install:install-file -Dfile=D:/jar/xxx.jar -DgroupId=xxx.xxx -DartifactId=xxx -Dversion=x.x -Dpackaging=jar

引用自百度:http://jingyan.baidu.com/article/91f5db1bdf82f81c7f05e30f.html

原则上Maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。

考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。

比如我下载了

lucene-queryparser-4.6.1.jar

怎么添加到本地仓库呢?

步骤:

1.cmd命令进入该jar包所在路径

2.执行命令

mvn install:install-file -Dfile=lucene-queryparser-4.6.1.jar -DgroupId=org.apache.lucene -DartifactId=lucene-queryparser -Dversion=4.6.1 -Dpackaging=jar

(不同的jar包相对应替换对应部分)

另外我尝试了下面的方法,发现不行:

直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。

补数盯充,-DgroupId和-DartifactId的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:

mvn install:install-file -Dfile=freemarker-2.3.13.jar -DgroupId=freemarker -DartifactId=freemarker -Dversion=2.3.13 -Dpackaging=jar

就是安装到了repository\freemarker\freemarker\2.3.13目录下,带毕梁如果在dependency的依赖里也蠢运这么写的话,就可以到对应的目录去寻找。

对于maven中存在classifier的,例如

org.apache.hadoop

hadoop-hdfs

2.2.0

tests

就加一个-D参数就可以了,如下:

mvn install:install-file -Dfile=hadoop-hdfs-2.2.0-tests.jar -DgroupId=org.apache.hadoop -DartifactId=hadoop-hdfs -Dversion=2.2.0 -Dclassifier=tests -Dpackaging=jar


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12523064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存