Maven Jar Builder:无法找到或加载主类

Jon*_*art 5 java packaging classnotfound maven

我已经尝试了几天为我的muli-module maven项目创建一个可执行jar文件.但是,当我尝试运行这个jar文件时,我得到"无法找到或加载主类src.main.java.com.domain.Mainclass"(为了我公司的隐私,我更改了域名和MainClass)

我已经搜索了几天,似乎没有任何明显的提示可行.

我的项目有一个主要的maven项目,它下载了所有的依赖项(包装:POM)和几个模块项目(Packaging:Jar).

一切似乎工作正常,所有文件都编译成类文件,但不知何故主类没有被添加到pom.

我的Pom文件插件:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
          <mainClass>com.domain.project.MainClass</mainClass>
        </manifest>
      </archive>
      </configuration>
      <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
      </executions>
      </plugin>
Run Code Online (Sandbox Code Playgroud)

该命令我使用:MVN清洁包,然后我cd到目标文件夹,并做到:Java的罐子jarfilename.jar

任何提示或帮助将是最受欢迎的!

编辑:

我当前的配置为每个模块创建了2个jar文件:

  • 项目名称-JAR与 - dependencies.jar
  • projectname.jar

当我使用我的主类导航到模块的目标文件夹时,我可以成功运行jar文件.但是,当我尝试运行我的父maven项目的jar文件(带有打包的那个:pom)时,我仍然得到相同的错误.有谁知道为什么主jar文件找不到主类?

谢谢!

Nil*_*lsH 10

您不应该将其src.main.java作为主类的包名称的一部分.它只是默认maven项目文件夹结构约定的一部分.您的配置应该是:

<archive>
    <manifest>
      <mainClass>com.domain.project.MainClass</mainClass>
    </manifest>
  </archive>
Run Code Online (Sandbox Code Playgroud)