开发者

Maven打包时如何指定启动类

开发者 https://www.devze.com 2023-04-09 10:23 出处:网络 作者: xzp_forever
目录Maven打包时指定启动类方法一方法二maven打包以某个类为启动类总结Maven打包时指定启动类
目录
  • Maven打包时指定启动类
    • 方法一
    • 方法二
  • maven打包以某个类为启动类
    • 总结

      Maven打包时指定启动类

      使用Maven打包的时候, 有时候需要指定启动类, 可如下操作!

      测试项目(结构如下):

      Maven打包时如何指定启动类

      代码: com.xxx.MainClass.Java 

      package com.xxx;
      
      public class MainClass {
          public static void main(String[] args) {
              System.out.println("The project is to use maven to package a Jar with mainclass !");
          }
      }
      

      打包的时候指定启动类为 com.xxx.MainClass

      方法一

      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/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>com.xxx</groupId>
          <artifactId>maven-packaging</artifactId>
          <version>1.0-SNAPSHOT</version>
      
          <build>
              <!-- 打包后的名字 -->
              <finalName>MainClass</finalName>
              <plugins>
                  <!-- 配置jdk版本为1.8 -->
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <configuration>
                          <target>1.8</target>
                          <source>1.8</source>
                      </configuration>
                  </plugin>
      
                  <!-- 配置启动类 -->
                  <plugin>
                      <groupId>org.apache.开发者_Js入门maven.plugins</groupId>
                      <artifactId>maven-shade-plugin</artifactId>
                      <version>3.2.1</version>
                      <executions>
                          <execution>
                              <phase>package</phase>
                              <goals>
                                  <goal>shade</goal>
                 python             </goals>
                              <configuration>
                                  <transformers>
                                      <transformer
                                              implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                          <mainClass>com.xxx.MainClass</mainClass>
                                      </transformer>
                                  </transformers>
                              </configuration>
                          </execution>
                      </exjsecutions>
                  </plugin>
        www.devze.com      </plugins>
          </build>
      </project>
      

      执行 mvn clean package , 在target包下找到MainClass.jar文件 

      可直接使用命令 java -jar MainClass.jar 执行

      Maven打包时如何指定启动类

      方法二

      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/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>com.xxx</groupId>
          <artifactId>maven-packaging</artifactId>
          <version>1.0-SNAPSHOT</version>
      
          <build>
              <!-- 打包后的名字 -->
              <finalName>MainClass</finalName>
              <plugins>
                  <!-- 配置jdk版本为1.8 -->
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <configuration>
         编程客栈                 <target>1.8</target>
                          <source>1.8</source>
                      </configuration>
                  </plugin>
              </plugins>
              <!-- 配置启动类 -->
              <pluginManagement>
                  <plugins>
      android                <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-jar-plugin</artifactId>
                          <configuration>
                              <archive>
                                  <manifest>
                                      <mainClass>com.xxx.MainClass</mainClass>
                                      <addClasspath>true</addClasspath>
                                      <classpathPrefix>lib/</classpathPrefix>
                                  </manifest>
                              </archive>
                              <classesDirectory>
                              </classesDirectory>
                          </configuration>
                      </plugin>
                  </plugins>
              </pluginManagement>
          </build>
      </project>
      

      执行 mvn clean package , 在target包下找到MainClass.jar文件 

      可直接使用命令 java -jar MainClass.jar 执行

      Maven打包时如何指定启动类

      两种配置效果时一样的 !!!!!

      maven打包以某个类为启动类

      配置信息如下:

      <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-jar-plugin</artifactId>
                      <configuration>
                          <archive>
                              <manifest>
                                  <mainClass>com.example.demo.TestKey</mainClass>
                                <addClasspath>true</addClasspath>
                              </manifest>
                          </archive>
                      </configuration>
                  </plugin>
              </plugins>
          </build>

      Maven打包时如何指定启动类

      定义一个java启动类

      package com.example.demo;
       
      public class TestKey {
          public static void main(String[] args) {
              System.out.println("启动了.............");
          }
      }

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号