Maven总结(二)Maven构建可执行的jar包并且包含依赖jar包

Maven总结(二)Maven构建可执行的jar包并且包含依赖jar包

插件总结

上一篇我们介绍了Maven如何构建可执行的jar包,主要使用了maven-jar-plugin和maven-dependency-plugin这两个Maven的插件,maven-jar-plugin负责构建jar包,maven-dependency-plugin负责导出所有依赖的jar包,这里我们使用了maven-assembly-plugin插件,这个插件可以将所有当前jar依赖的所有jar包打包到当前jar里面,这样就不需要导出所有依赖的jar包了,直接运行jar就可以了,实在太方便了 ^_^

Maven的pom.xml配置文件

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0modelVersion>

  <groupId>com.birdbengroupId>
  <artifactId>birdDemoartifactId>
  <version>1.0-SNAPSHOTversion>
  <packaging>jarpackaging>

  <name>birdDemoname>
  <url>http://maven.apache.orgurl>

  <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
  properties>

  <dependencies>
    <dependency>
      <groupId>org.slf4jgroupId>
      <artifactId>slf4j-apiartifactId>
      <version>1.7.13version>
      <scope>systemscope>
      
      <systemPath>${basedir}/lib/slf4j-api-1.7.13.jarsystemPath>
    dependency>

    
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>3.8.1version>
    dependency>
    

  dependencies>

  <build>
    <finalName>AppfinalName>
    <plugins>
      <plugin>  
        <artifactId>maven-assembly-pluginartifactId>  
        <configuration>  
            <appendAssemblyId>falseappendAssemblyId>  
            <descriptorRefs>  
                <descriptorRef>jar-with-dependenciesdescriptorRef>  
            descriptorRefs>  
            <archive>  
                <manifest>  
                    <mainClass>com.birdben.AppmainClass>  
                manifest>  
            archive>  
        configuration>  
        <executions>  
            <execution>  
                <id>make-assemblyid>  
                <phase>packagephase>  
                <goals>  
                    <goal>assemblygoal>  
                goals>  
            execution>  
        executions>  
      plugin>
    plugins>
  build>
project>
App.java
package com.birdben;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import junit.framework.TestResult;

/**
 * Hello world!
 */
public class App {

    public static Logger logger = LoggerFactory.getLogger(App.class);

    public static void main(String[] args) {
        TestResult test = new TestResult();
        logger.info("App start");
        System.out.println("Hello World!");
        logger.info("App end");
    }
}
终端
# 运行jar
$ java -jar App.jar

参考文章:

  • http://chenzhou123520.iteye.com/blog/1706242

你可能感兴趣的:(Maven)