快捷搜索:

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:jna.jar -DgroupId=com.sun.jna -DartifactId=examples -Dversion=1.0 -Dpackaging=jar

mvn install:install-file -Dfile=D:mvnspring-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 .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:workshopDbUtilsrcmainjava,需要改成:D:workshopDbUtilsrcmain esources(需要新建文件夹),如果不这样修改,打成的jar包里没有包含META-INF/MAINFEST.MF文件,这个应该是个IDEA的BUG(参考:),配置完成后如下图所示,点击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文件。

经验分享 程序员 职场和发展