时间:2021-05-19
将项目进行编译、测试之后,接下来就是打包(package),我们的pom.xml中没有指定打包类型,那么使用默认打包类型jar,简单的执行命令mvn clean package进行打包
从输出内容可以看出,Maven在打包之前进行了编译、测试等操作。
jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为hello-world-1.0-SNAPSHOT.jar的文件。该文件也位于target/输出目录中
它是根据artifact-version.jar规则进行命名的。
至此,我们得到了项目的输出,如果有需要的话,就可以复制这个jar文件到其他项目的Classpath中,从而使用HelloWorld类。
但是,如何让其他的Maven项目直接饮用这个jar呢,还需要一个安装步骤:mvn clean install
在打包之后,又执行了install。从输出中可以看到该任务将项目输出的jar安装到了Maven本地仓库中,可以打开相应的文件夹看到HelloWorld项目的pom和jar。
现在我们已经介绍了Maven最主要的命令:mvn clean compile、mvn clean test、mvn clean package、mvn clean install。
执行test之前是会先执行compile的,执行package之前是会先执行test的,类似的install之前会先执行package,可以在任何一个Maven项目中执行这些命令。
默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INF/MANIFEST.MF文件,将无法看到Main-Class一行)
为了生成可执行的jar文件,需要借助maven-shade-plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>这里配置了mainClass为com.juvenxu.mvnbook.helloworld.HelloWorld,项目打包时会将该信息放到MANIFEST中,再次执行mvn clean install,构建完之后打开target/目录,可以看到hello-world-0.0.1-SNAPSHOT.jar和original-hello-world-0.0.1-SNAPSHOT.jar,前者是带有Main-Class信息的可运行jar,后者是原始的jar
打开hello-world-0.0.1-SNAPSHOT.jar的META-INF/MANIFEST.MF,可以看到包含这样一样信息:
Main-Class: com.juvenxu.mvnbook.helloworld.HelloWorld
现在在项目根目录中执行该jar文件
# java -jar target\hello-world-0.0.1-SNAPSHOT.jar控制台输出了Hello Maven
到此这篇关于Maven打包和运行的文章就介绍到这了,更多相关Maven打包和运行内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
(一)springbootweb项目打jar包1、打包两种打包方式maven命令打包切换目录到工程根下,pom.xml所在位置,运行maven的打包命令mvnc
添加了spring-boot-maven-plugin插件后,当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包,使用"java-jar"可以
Maven是个很好用的管理工具,不经能够管理jar,还能实现打包。这里讲解Maven本地打包,服务器打包,可以全部交给jenkins去完成的。用Maven打包,
Maven小白系列,我们会分为几个部分?01添加依赖并打包02添加本地jar包并打包03将本地jar包导入本地maven库04springboot打包jar和w
类加载器的分类。试验:使用maven打包org.apache.maven.pluginsmaven-dependency-plugincopy-dependen