有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用mavenassemblyplugin创建的java Jar未与mvn安装一起运行

我正在使用maven assembly插件创建一个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命令具体做什么


共 (0) 个答案