maven基础学习(三)-简单实例(运行)
来源:互联网 发布:mac液体唇膏三文鱼粉 编辑:程序博客网 时间:2024/05/29 18:46
通过对<Maven基础学习(一)(二)>博客的学习,对如何通过maven构建项目有了一个大概的了解,本篇博客继续介绍......
1.在前面的博客中,我们已经成功通过maven构建了web项目,并将其编译,打包并安装到了本地仓库中,以供其他maven项目使用.
但是我们还没有成功运行此项目,当通过在cmd窗口执行java -jar target/maven-demo-1.0-SNAPSHOT.jar指令时,
会得到在maven-demo-1.0-SNAPSHOT.jar没有主清单属性的错误提示,说明通过maven打包生成的jar是不能直接运行的,
因为带有main方法的类信息不会添加到mainfest中,中(我们可以打开jar文件中的META-INF/MANIFEST.MF文件将无法看到Main-Class一行).
original-maven-demo-1.0-SNAPSHOT.jar和maven-demo-1.0-SNAPSHOT.jar前者是原始的jar,后者是带有Main-Class信息的可运行jar.
打开maven-demo-1.0-SNAPSHOT.jar的META-INF/MANIFEST.MF,可以看到它包含这样一行信息:
Main-Class: com.ilucky.maven.HelloWorld
1.在前面的博客中,我们已经成功通过maven构建了web项目,并将其编译,打包并安装到了本地仓库中,以供其他maven项目使用.
但是我们还没有成功运行此项目,当通过在cmd窗口执行java -jar target/maven-demo-1.0-SNAPSHOT.jar指令时,
会得到在maven-demo-1.0-SNAPSHOT.jar没有主清单属性的错误提示,说明通过maven打包生成的jar是不能直接运行的,
因为带有main方法的类信息不会添加到mainfest中,中(我们可以打开jar文件中的META-INF/MANIFEST.MF文件将无法看到Main-Class一行).
为了生成可执行的jar文件,我们需要借助maven-shade-plugin,直接看pom.xml文件.
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.ilucky.maven</groupId><artifactId>maven-demo</artifactId><version>1.0-SNAPSHOT</version><name>Hello World</name><build><plugins><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.ilucky.maven.HelloWorld</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin></plugins></build></project>2.配置完后,按照前面的博客执行mvn clean compile,mvn clean package指令,会发现在target目录下生成了两个jar文件
original-maven-demo-1.0-SNAPSHOT.jar和maven-demo-1.0-SNAPSHOT.jar前者是原始的jar,后者是带有Main-Class信息的可运行jar.
打开maven-demo-1.0-SNAPSHOT.jar的META-INF/MANIFEST.MF,可以看到它包含这样一行信息:
Main-Class: com.ilucky.maven.HelloWorld
然后在cmd窗口执行ava -jar target/maven-demo-1.0-SNAPSHOT.jar命令,会得到正确的结果.
先介绍到这里,请继续关注后面的博客...... 0 1
- maven基础学习(三)-简单实例(运行)
- spring基础学习-简单实例(三)
- maven基础学习(二)-简单实例(编译-打包-安装)
- maven基础学习(四)-简单实例(使用Archetype生成项目骨架)
- jade学习三---jade实例运行,图解。
- Maven学习之三:创建一个简单的Maven项目
- spring基础学习-简单实例(一)
- spring基础学习-简单实例(二)
- maven基础三
- Maven学习笔记(三)---在MyEclipse里面 用maven搭建简单的maven项目
- maven之简单运行命令
- mina学习基础-入门实例-传输定长报文(三)
- maven学习笔记三
- Maven学习总结(三)
- Maven学习(三)
- Maven 学习(三)
- Maven学习(二十六)-Maven私服(三) - Nexus的简单配置
- Watir简单多线程运行实例
- LeetCode || Unique Binary Search Trees
- hadoop 处理不同的输入文件,文件关联
- iptalbes绑定mac
- Spring学习之DI(二)
- C++11 lambda表达式
- maven基础学习(三)-简单实例(运行)
- 郝斌数据结构(二):单链表
- LeetCode || Binary Tree Preorder Traversal
- Android中使用gson解析JSON
- Java获取数字中单个数字,实例 获取水仙花数
- hadoop学习-倒排索引
- linux 下 opendir 和 readdir 函数的应用
- leetcode: Trapping Rain Water
- 二叉查找(排序)树