一、将jar添加到本地仓库的做法:
以下面pom.xml依赖的jar包为例:
实际项目中pom.xml依赖写法:
org.springframework
spring-context-support
3.1.0.RELEASE
Maven 安装 JAR 包的命令是:
mvn install:install-file
-Dfile=jar包的位置
-DgroupId=上面的groupId
-DartifactId=上面的artifactId
-Dversion=上面的version
-Dpackaging=jar
例如我的这个spring-context-support-3.1.0.RELEASE.jar 文件放在了”D:\mvn\”中
则命令为:mvn install:install-file -Dfile=D:\jna.jar -DgroupId=com.sun.jna -DartifactId=examples -Dversion=1.0 -Dpackaging=jar
mvn install:install-file
-Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar
-DgroupId=org.springframework
-DartifactId=spring-context-support
-Dversion=3.1.0.RELEASE
-Dpackaging=jar
注意:任何路径和名称不要有中文和空格,以防出现莫名其妙的错误。
还可以解决本地仓库是从别人那边复制的,但是需要的jar包中央仓库不存在,导致的执行package时出现以下异常
Failed to execute goal on project relayserver: Could not resolve dependencies for project com.xxx:xxx:war:1.0-SNAPSHOT: Failure to find xxx.xxx:xxx:jar:1.0 in http://maven.aliyun
.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are forced
二、不讲jar包添加到本地仓库也可在maven工程中使用外部jar包的做法:
假设将包htmlparser.jar放入了项目下的lib目录中 :
->
project/lib/htmlparser.jar则pom.xml文件中依赖可以如下:com.htmlparserhtmlparser2.0system
p
r
o
j
e
c
t
/
l
i
b
/
h
t
m
l
p
a
r
s
e
r
.
j
a
r
则
p
o
m
.
x
m
l
文
件
中
依
赖
可
以
如
下
:
c
o
m
.
h
t
m
l
p
a
r
s
e
r
h
t
m
l
p
a
r
s
e
r
2.0
s
y
s
t
e
m
{project.basedir}/lib/htmlparser.jar
以上是maven加入本地仓库的做法,须知,maven默认配置文件是setting.xml 其他自建的xml他不认。
背景:
有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包。并且,如果依赖第三方jar时,又不希望第三方jar也打入最终的可运行jar包,并且还希望,组织下目录结构(如把第三方jar文件,放到最终可运行jar包的并行目录lib下)
步骤:
1、 选中Java项目工程名称,在菜单中选择 F12
2、在弹出的窗口中左侧选中”Artifacts”,点击”+”选择jar,然后选择”from modules with dependencies”。
3、在配置窗口中配置”Main Class”。
4、’ 选择“Main Class”后,选择“copy to the output and link via manifest”,配置“Directory for META-INF/MAINFEST.MF”,此项配置的缺省值是:D:\workshop\DbUtil\src\main\java,需要改成:D:\workshop\DbUtil\src\main\resources(需要新建文件夹),如果不这样修改,打成的jar包里没有包含META-INF/MAINFEST.MF文件,这个应该是个IDEA的BUG(参考:http://stackoverflow.com/questions/15724091/how-to-run-a-jar-file-created-using-intellij-12),配置完成后如下图所示,点击OK进入下一步。(如果选择“extract to the target jar”,即把第三方jar文件,打入最终的可运行jar包时,可以不修改“Directory for META-INF/MAINFEST.MF”的配置,用缺省值即可)
5、右键“”,选择“Create Directory”,输入目录名:libs
6、用鼠标按住第三方jar,拖入下的libs目录下
7、用鼠标选中我们将要打出的jar包文件,点击下方“Class Path:”后面的按钮,在“Edit Classpath”窗口中,将每个第三方jar文件前加上相对路径:libs/,形成如:libs/xxx.jar的形式(注意是 / ,而不是 \),这个目录“libs”,就是前面输入的那个“libs”,这里如果第三方jar很多的话,可以在“Edit Classpath”窗口中,用鼠标选中所有第三方jar,然后Ctrl+X,把内容cut & copy到UltraEdit里,用列格式一下子全部修改好,再paste到“Edit Classpath”窗口中。完成后如下所示:
8、完成后,点击OK,Apply等按钮,回到IDEA的主菜单,选择“Build - Build Artifacts”下的“Build”或者“Rebuild”即可生成最终的可运行的jar,并把第三方jar放到和此jar并行的lib目录下,用winrar打开目标jar,可以看到META-INF/MAINFEST.MF文件被正确包含,内容也正确。
9、在jar包的输出目录下,执行命令:java -jar xxx.jar,即可运行jar文件。