Maven项目打包

Ban

Ban

ChangAn University
  • 打没有依赖的Jar包
  • 打有依赖的Jar包

打没有依赖的jar包

  • 编辑pom.xml

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
    <archive>
    生成的jar中,不要包含pom.xml和pom.properties这两个文件
    <addMavenDescriptor>false</addMavenDescriptor>
    <manifest>
    是否要把第三方jar放到manifest的classpath中
    <addClasspath>true</addClasspath>
    生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/
    <classpathPrefix>lib/</classpathPrefix>
    应用的main class
    <mainClass>com.yourClass</mainClass>
    </manifest>
    </archive>
    过滤掉不希望包含在jar中的文件
    <excludes>
    <exclude>${project.basedir}/xml/*</exclude>
    </excludes>
    </configuration>
    </plugin>

打含依赖的jar包

  • 编辑pom.xml

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    </plugin>
    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
    <archive>
    <manifest>
    <mainClass>com.test.app</mainClass>
    </manifest>
    </archive>
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    </configuration>
    <!--下面是为了使用 mvn package命令,如果不加则使用mvn assembly-->
    <executions>
    <execution>
    <id>make-assemble</id>
    <phase>package</phase>
    <goals>
    <goal>single</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>

运行maven打jar包

image-20200401203244121

  • jar文件生成在项目/target目录下

参考

IDEA + Maven 打jar包