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一行).

  为了生成可执行的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