微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 maven-assembly-plugin 创建的 Jar 未与 mvn install 一起运行

如何解决使用 maven-assembly-plugin 创建的 Jar 未与 mvn install 一起运行

我正在使用 Maven 程序集插件创建一个 jar 文件。 最小的 pom 文件看起来像:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.org.taptest.tests.TestsRunningAsTAP</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
<executions>
    <execution>
        <id>make-assembly</id>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
        <configuration>
          <outputDirectory>${basedir}/target/</outputDirectory>
        </configuration>
      </execution>
   </executions>
</plugin>

当我运行 mvn clean install 时,它会创建一个 jar 文件,但是当我使用 java -jar <jarfileName> 运行 jar 文件时,它会显示 Error: Could not find or load main class。 而如果我编辑上面的pom,有

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <archive>
      <manifest>
        <addClasspath>true</addClasspath>
                          
       <mainClass>com.org.taptest.tests.TestsRunningAsTAP</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
       <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

在运行 mvn clean install 后,我运行 mvn compile test-compile assembly-plugin,它生成相同的 jar 文件,但此 jar 文件按预期运行。 所以,我的问题是为什么第一种方法的 jar 文件不运行,mvn compile test-compile assembly-plugin 命令究竟做了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。