idea本地打包,引用第三方包(包括maven将本地包加入本地仓库)

一、将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:\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目录中 :
-> 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文件。

原文地址:https://blog.csdn.net/dufufd/article/details/71126571

猜你喜欢

转载自blog.csdn.net/zr527397749/article/details/80877869