一、包的几种用途



·直接可运行的jar包:类似于单个应用程序

·依赖引用的jar包:编写Java项目时pom.xml中引用的jar包

·Web应用程序war包:一般是一些Web程序

二、打包的几种方式



1.开发工具打包

例如:IDEA、Eclipse等开发工具。不过打的包很容易出现冲突



2.maven命令打包



2.1 直接使用package命令

不能打可直接运行的jar包

java war包怎么部署 java打war包_jar

2.2添加“maven-jar-plugin”插件

mainClass属性可以指定主类,可直接运行

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.4</version>
      <configuration>
          <archive>
              <manifest>
                  <addClasspath>true</addClasspath>
                  <classpathPrefix>lib/</classpathPrefix>
                  <mainClass>demo01.JobMain2</mainClass>
              </manifest>
          </archive>
      </configuration>
  </plugin>

2.3添加“maven-shade-plugin”插件

运行时需要指定主类全路径
jar包出现依赖包冲突可以通过调整配置解决

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
    <execution>
        <phase>package</phase>
        <goals>
            <goal>shade</goal>
        </goals>
        <configuration>
            <minimizeJar>true</minimizeJar>
        </configuration>
    </execution>
</executions>
</plugin>

三、性能比较

shade>assembly>IDEA自带>package>jar插件

未完成