• Maven导出jar包的几种常见方式


    1、普通方式 不将依赖引入

    <!--生成class文件jar包的插件 -->
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>3.1</version>
       <configuration>
         <source>${sourceJavaVersion}</source>
         <target>${targetJavaVersion}</target>
         <encoding>${project.build.sourceEncoding}</encoding>
       </configuration>
    </plugin>
                

    <!--生成依赖jar包的插件 --> <plugin> <artifactId>maven-dependency-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <includeScope>runtime</includeScope> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> </configuration> </plugin> <!--打包生成源码 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals>   <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin>

    2、引入依赖、将依赖jar包引入到项目中

    <plugin>
                    <artifactId> maven-assembly-plugin </artifactId>
                       <configuration>
                            <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <archive>
                                 <manifest>
                                      <mainClass>main函数</mainClass>
                                 </manifest>
                            </archive>
                       </configuration>
                       <executions>
                            <execution>
                                 <id>make-assembly</id>
                                 <phase>package</phase>
                                 <goals>
                                      <goal>single</goal>
                                 </goals>
                            </execution>
                       </executions>
       </plugin>

    3、使用shade打包方式打包

    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>1.4</version>
        <executions>
          <execution>
          <phase>package</phase>
          <goals>
              <goal>shade</goal>
          </goals>
          <configuration>
            <transformers>
              <transformer
                          implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                      <mainClass>com.sincetimes.adstatistics.TimerFactory</mainClass>
              </transformer>
              <transformer
                          implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                <resource>META-INF/spring.handlers</resource>
              </transformer>
              <transformer
                          implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
              <resource>META-INF/spring.schemas</resource>
              </transformer>
            </transformers>
          </configuration>
         </execution>
       </executions>
    </plugin>

    打包时指定jdk版本

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <sourceJavaVersion>1.8</sourceJavaVersion>
        <targetJavaVersion>1.8</targetJavaVersion>
        <project.build.directory>/</project.build.directory>
    </properties>

    项目真实配置

      <build>
        <resources>
          <resource>
            <targetPath>${project.build.directory}/classes</targetPath>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
              <include>**/*.yml</include>
              <include>**/*.xml</include>
              <include>**/*.properties</include>
            </includes>
          </resource>
        </resources>
        
        
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
              <classesDirectory>target/classes/</classesDirectory>
              <!-- 显示指定生成的Jar包的名字 -->
             <finalName>llmj-pay-1.0.8</finalName>
              <archive>
                <manifest>
                  <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本--> 
                  <useUniqueVersions>false</useUniqueVersions>
                  <mainClass>com.llmj.paycenter.Application</mainClass>
                  <addClasspath>true</addClasspath>
                  <classpathPrefix>lib/</classpathPrefix>
                </manifest>
                <manifestEntries>
                  <Class-Path>.</Class-Path>
                </manifestEntries>
              </archive>
            </configuration>
          </plugin>
    
    
          <!-- 将项目所依赖的Jar包复制到一个单独的文件中,完成依赖包的处理 -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>copy</id>
                <phase>install</phase>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                  <type>jar</type>
                  <includeTypes>jar</includeTypes>
                  <useUniqueVersions>false</useUniqueVersions>
                  <outputDirectory>
                    ${project.build.directory}/lib
                  </outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

    打包跳过单元测试

      <!-- 打包跳过单元测试 -->
          <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-surefire-plugin</artifactId>  
            <configuration>  
              <skipTests>true</skipTests>  
            </configuration>  
          </plugin> 

    作者:Reno灬 出处:https://www.cnblogs.com/import-new/ 版权归作者所有,转载请注明出处
  • 相关阅读:
    ==和===
    Println、Printf、Sprintf区别
    BurpSuite代理https
    scp
    Tomcat Ajp(CVE-2020-1938)
    Chrome-HackBar破解
    crontab
    Sql注入之postgresql
    Sql注入之oracle
    LeetCode简单题(一)
  • 原文地址:https://www.cnblogs.com/import-new/p/13158741.html
Copyright © 2020-2023  润新知