要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里; 2、要能加载到依赖包...使用Maven有以下几种方法可以生成能直接运行的jar包,可以根据需要选择一种合适的方法。...所以可以直接通过java -jar来运行。 此外还可以直接通过mvn package来打包,无需assembly:single,不过需要加上一些配置: ?...其中package、single即表示在执行package打包时,执行assembly:single,所以可以直接使用mvn package打包。...方法三:使用maven-shade-plugin插件打包 在pom.xml中配置: ? 配置完成后,执行mvn package即可打包。
2、mvn test 测试,并生成测试报告 3、mvn clean 将以前编译得到的旧的 class 字节码文件删除 4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar...)、ClassNotFoundException(找不到依赖包)等错误。...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里; 2、要能加载到依赖包...使用Maven有以下几种方法可以生成能直接运行的jar包,可以根据需要选择一种合适的方法。...即表示在执行package打包时,执行assembly:single,所以可以直接使用mvn package打包。
常用MAVEN打包方式总结 Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里; 2、要能加载到依赖包...使用Maven有以下几种方法可以生成能直接运行的jar包,可以根据需要选择一种合适的方法。...即表示在执行package打包时,执行assembly:single,所以可以直接使用mvn package打包。...不过,如果项目中用到spring Framework,用这种方式打出来的包运行时会出错,使用下面的方法三可以处理。
放弃不难,但坚持很酷~ 环境说明: springboot:2.2.7 jdk:1.8.0 maven:3.6.3 在平时的项目中,我们用到了 spring boot 默认的插件 spring-boot-maven-plugin...但是这次,有一个多模块项目,我负责其中一个模块的开发,开发完成之后,发现打的包直接执行报找不到主类,这就有点奇怪了,所以就有了这篇文章。...在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin --> 运行 Spring Boot 应用 start:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理 stop:这个在 mvn integration-test...-- 只运行一次 --> single </executions
wagon是maven插件中的一种,其作用是去除我们部署时繁复的步骤,不用再手动上传jar包或者war包到指定服务器路径下面。 ---- 问题 有什么用? 怎么用? 有什么优势?...-- 显示运行命令的输出结果 --> true ...: mvn clean package wagon:upload wagon:sshexec wagon:upload-single是上传jar或者war包 wagon:sshexec是执行配置中的shell...-- 运行package打包的同时运行upload-single和sshexec--> package upload-single...clean package 来代替 mvn clean package wagon:upload-single wagon:sshexec,但个人觉得不是特别适合开发时期,我觉得还是使用命令的方式执行
Maven使用maven-assembly-plugin装需要打包的文件打进zip包 pom.xml下的主要配置如下: org.apache.maven.plugins...Maven生成可执行jar包及zip项目压缩包 双击执行mvn:package会生成两个包:可执行jar包和项目压缩包,因为assembly的装配配置的是绑定到这上面来的 双击执行assembly:single...只生成项目压缩包 这里执行mvn:package 解压后的项目压缩包目录结构: 7....-- 配置Maven的仓库, 在此处配置的仓库会优先于setting.xml里配置的仓库, 建议哪个仓库快,哪个配置在前面, 然后如果Maven在前面配置的仓库找不到的话会去后面的仓库找, 如果后面的仓库都找不到...-- 不然这些依赖的jar包加载到ClassPath的时候会找不到--> lib
而Maven通过插件进行构建,并自动打包成Jar或者war包。让编译构建的工作可以很好的在持续集成的过程中交给工具去完成。...Maven的安装 Maven运行依赖于Java环境,所以需要安装Java运行环境JDK。...执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。 所有 POM 文件主要配置内容 groupId 组织标识。...在 artifact 的仓库中,它用来区分不同的版本,比如1.0或者1.0-SNAPSHOT classifier 制品包JDK版本,也就是编译器版本 以上四个标签构成了Maven的管理包的坐标体系也就是我们常说的...项目的目录结构和构建插件管理等 Maven依赖搜索顺序 当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库: 步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作
jar包 如果没有则去maven管理的中心仓库去寻找 如果中央仓库还没有,就会去远程仓库寻找,如果连远程仓库都没有创建,那么直接抛出错误,找不到依赖 有远程仓库,但是远程仓库也找不到需要的jar包,同样会抛出错误...,找不到依赖 除此之外,还有一个镜像的概念,只要仓库A能够包含仓库B所有的jar包,那么就可以说A是B的镜像。...还有一个值得注意的点是看到了testCompile,说明是mvn test 也是经过编译后才运行的 那么mvn test-compile 即可达到只编译不运行的效果。...打包 package 真实情况下一般是不会编译所有的文件,然后放在服务器上跑class文件的,而是把项目打包成一个jar包运行,或者打成war包部署在服务器的tomcat上运行。...=maven-archetype-quickstart -DarchetypeVersion=1.4 这次试试不自动生成,采用mvn archetype:generate 出现了警告,说是在远程编录中找不到骨架
Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。...%MAVEN_HOME%\bin; ----因为Maven运行依赖于Java环境,所以需要确保环境变量中有JAVA_HOME,变量值为JDK的目录; 4)检验Maven是否按照OK,cmd中输入mvn...本地仓库的默认位置是系统盘下的路径; 2)中央仓库:启动Maven工程时,先通过jar包坐标在本地仓库寻找jar包,若本地没有,在联网的情况下会去中央仓库下载,未联网的情况下因找不到jar包会报错。...3)在IDEA->Settings->Maven(可直接搜索)->Runner,设置VM-Options,若使用Maven提供的好的骨架创建Maven工程时,需要联网,为了不联网情况下也可以成功创建,那么配置此参数...【原因】:在项目编译的时候用的是我们导入的jar包,但在真正运行的时候是调用本地的tomcat里面的jar包,发生了冲突。 ?
2)远程仓库 默认情况下,本地仓库是被注释掉的,也就是空的,那么就必须得给 Maven 配置一个可用的远程仓库,否则 Maven 在 build(构建)的时候就无法去下载依赖。...mvn clean package:运行清理和打包。 mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。...用户可以直接在该插件的配置以 Ant 的方式编写 Target,然后交给该插件的 run 目标去执行。在一些由 Ant 往 Maven 迁移的项目中,该插件尤其有用。...此外当你发现需要编写一些自定义程度很高的任务,同时又觉得 Maven 不够灵活时,也可以以 Ant 的方式实现之。maven-antrun-plugin 的 run 目标通常与生命周期绑定运行。...maven-assembly-plugin 要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的 single 目标可以直接在命令行调用,也可以被绑定至生命周期。
安装(install):在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。 部署(deploy):将打包的结果部署到远程仓库。...生成target目录,编译、测试代码,生成测试报告,生成jar/war文件 mvn site —— 生成项目相关信息的网站 mvn clean compile —— 表示先运行清理之后运行编译,会将代码编译到...target文件夹中 mvn clean package —— 运行清理和打包 mvn clean install —— 运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用 mvn clean...deploy —— 运行清理和发布 五、什么是本地仓库/远程仓库/中央仓库 本地仓库存放着你的项目曾经引用过的jar包,在新建项目的时候,会在pom.xml里查找依赖,如果找不到会去远程仓库下载,远程仓库找不到就去中央仓库下载...远程仓库:一般是公司自己搭建的私服,可以加快jar包下载速度 第三方维护的jar包仓库,比如阿里云的,但是jar包可能不如官方的中央仓库全,有时候也会找不到,所以如果项目构建不成功,可以更改镜像为官方的
conf:存放maven的配置文件 lib:maven是java编写的,里面会用到很多第三方的jar包,这些jar包位于lib中 创建一个软连接指向apache-maven-3.6.2...Maven的运行原理详解 本文后面会用到~这个符号,先对这个符号做一下说明,这个符号表示当前用户的目录 window中默认在C:\Users\用户名 linux root用户默认在/root目录,其他用户的...我们来详细看一下mvn help:system这个命令的运行过程: 1.运行mvn help:system之后 2.系统会去环境变量PATH对应的所有目录中寻找mvn命令,然后在D:\installsoft...\maven\apache-maven-3.6.2\bin中找到了可执行的mvn文件 3.运行mvn文件,也就是执行mvn命令 4.通常一些软件启动的时候,会有一个启动配置文件,maven也有,mvn...Maven的一些配置 启动文件设置 上面提到了mvn运行的时候,会加载启动的配置文件settings.xml,这个文件默认在M2_HOME/conf目录,一般我们会拷贝一个放在 /.m2目录中,前者是全局范围的配置文件
本地仓库是计算机本机硬盘上的某个路径,这个路径在安装Maven后不会马上创建,它在第一次运行Maven命令的时候才被创建。...使用Maven时,Maven会自动在当前目录中查找pom.xml,读取pom.xml,获取所需的配置信息,然后执行目标任务。pom.xml一般放置在项目源码的根目录下。...一般情况下,一个项目的Maven构建生命周期由以下几个阶段的序列组成。 ? ?...Maven构建命令 在pom.xml文件所在的路径使用mvn命令,Maven会自动查找pom.xml,加载解析并执行文件中的构建任务。...mvn clean deploy:依次执行移除所有上一次构建生成的文件、代码编译、单元测试、打包、将打好的包安装到本地仓库、将打好的包发布到远程仓库。
##打包时跳过测试 mvn package -Dmaven.test.skip=ture ##使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。...Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main...##Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 mvn dependency:resolve ##想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件...assembly ##显示详细错误信息 mvn -e ##验证工程是否正确 mvn validate ##在集成测试可以运行的环境中处理和发布包 mvn integration-test...##运行任何检查,验证包是否有效且达到质量标准 mvn verify ##产生应用需要的任何额外的源代码,如xdoclet mvn generate-sources
maven-assembly- plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。...,在某些特定情况下,运行一个Maven外部的程序可能就是最简单的问题解决方案,这就是exec:exec的用途,当然,该插件还允许你配置相关的程序运行参数。...除了exec目标之外,exec-maven-plugin还提供了一个java目标,该目标要求你提供一个mainClass参数,然后它能够利用当前项目的依赖作为classpath,在同一个JVM中运行该mainClass...有时候,为了简单的演示一个命令行Java程序,你可以在POM中配置好exec-maven-plugin的相关运行参数,然后直接在命令运行mvn exec:java 以查看运行效果。...复制并处理测试资源文件至测试目标目录 mvn test-compile 编译测试源码至测试目标目录 mvn test 使用合适的单元测试框架运行测试。
当依赖包数量多起来,就很难管理了。而且,如果团队开发时,一个人提交的项目所使用的IDE版本与另一个人的不一致,那么所提及的项目就可能不能正常地在别人的IDE中编译、运行。...开发项目时,需要用到的jar包只需在配置文件中配置好几个相关信息,Maven就会自动下载、导入到项目中,并且如果该jar包有依赖包,也会自动一并下载、导入。...如果项目有jar包依赖冲突,只需通过Maven的 mvn -X compile dependency:tree -Dverbose 指令即可自动排查出冲突的jar包信息。...对应的超级pom 版本 dependencies 项目依懒包 maven jar包的流程 maven jar先在本地找,查找本地 本地找不到去远程仓库找 有的公司有自己的私服,本地找不到先找自己的私服...parent元素中的属性对应的都是父项目中的内容。在parent元素中还有一个属性relativePath,maven会通过这个路径去查找父项目的pom.xml,如果找不到会从本地仓库中查找。
丢给maven的执行参数,表示要执行的插件及目标 上面这里,日志级别是比较高的,我们需要调低,怎么调呢,通过idea的settings即可: 打开debug级别后,再次运行,命令里就会多出一个:-...我想着,我先把参数-DarchetypeCatalog=local改了,看看debug日志,在local参数情况下,是去哪里获取这个文件: image-20230818223623549 然后,注意啊...但我们没放,所以找不到。找不到的话,它也就放弃了,会直接去maven中央仓库拉取这个指定模版的jar下来。...该插件的goal:generate 我们上面使用的就是该插件的generate 目标: https://maven.apache.org/archetype/maven-archetype-plugin...,指定了-Dpackage,即手动指定了我们module的包名。
war包的都是web工程,是可以直接放到tomcat下运行的工程。...打成pom包和jar包的工程在新建的时候可以不需要制定maven项目的原型,达成war包的项目需要制定maven项目原型,指定的原型通常为maven-archetype-webapp,代表web项目。...mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下...,打开 Maven 的调试标记运行 mvn install -Dmaven.test.skip=true 给任何目标添加maven.test.skip 属性就能跳过测试 mvn install assembly...:assembly 构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件 mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet
-Dmaven.test.skip=ture 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。...插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main...Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 mvn dependency:resolve 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件...显示详细错误信息 mvn -e 验证工程是否正确 mvn validate 在集成测试可以运行的环境中处理和发布包 mvn integration-test...运行任何检查,验证包是否有效且达到质量标准 mvn verify 产生应用需要的任何额外的源代码,如xdoclet mvn generate-sources
一、摘要 在项目开发过程中,我们经常需要将一些公共方法提取出来,然后单独封装成一个第三方公共jar包,采用普通的方式打包后的jar,依赖的工程执行编译时,却提示找不到对应的依赖包,那么如何将工程打包为可执行...,进行打包 mvn clean package 会在target文件夹里生成一个jar-with-dependencies的jar是可执行的。...,进行打包 mvn clean package 发现生成了2个jar包,一个为:original-XXX.jar,另一个为:XXX.jar,其中original...jar里只包含了工程自己的class...文件,而另外的一个jar包则包含了工程本身以及所有依赖的jar包的class文件。...2.3.2、FatJar使用 在使用Eclipse进行导出时,点击项目右键,在弹出的右键菜单中选择Build Fat Jar, 打开配置Fat Jar弹出框;或者,项目右键,点击Export,然后在打开的
领取专属 10元无门槛券
手把手带您无忧上云