当我们使用Maven生成的jar包运行时,有时会遇到“没有主清单属性”的问题。这是因为在生成Jar包时,没有正确指定Main-Class。
以下是解决该问题的攻略:
第一步:确认pom.xml的配置
在Maven项目中,我们需要确保在pom.xml文件中指定了Main-Class属性,并且指向我们需要执行的程序入口。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
在上面的示例中,“com.example.MainClass”是我的入口类,您需要将其替换为您的入口类所在的位置。
第二步:重新构建项目
在确认了pom.xml文件的配置后,我们需要重新构建项目并生成jar包。我们可以在Maven项目根目录下执行以下命令:
mvn clean compile assembly:single
执行该命令后,Maven会重新构建项目并将jar包打包到“target目录”下。您可以在该目录下找到并运行生成的jar包。
示例1:
在这个示例中,我们创建了一个包含Main类的Maven项目,该类负责打印Hello World。
首先,我们需要在pom.xml中配置Main-Class属性。在下面的代码块中,我们将“com.example.Main”设置为程序入口。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
接着,我们执行以下命令构建Maven项目:
mvn clean compile assembly:single
执行完毕后,我们可以在“target文件夹”中找到生成的jar包,并执行它:
java -jar demo-1.0.jar
如果一切正常,你会看到“Hello World”在控制台输出。
示例2:
在该示例中,我们将介绍如何使用Spring Boot快速创建一个简单的Web应用程序,打包成jar包并运行。我们假设您已安装了Spring Boot。
首先,我们用Spring Initializr构建一个新的Project。我们选择Web starter,并设置一个名为“my-web-app”的项目名称。选择完成后,您将获得一个简单的Maven项目。
在pom.xml中添加“spring-boot-maven-plugin”依赖项,例如:
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
接下来,我们创建一个简单的RESTful API。在“src/main/java”目录下创建一个新的Class,命名为“SimpleRestController”,并添加以下代码:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SimpleRestController {
@GetMapping("/")
public String hello() {
return "Hello World!";
}
}
最后,我们需要确保应用程序已准备好启动。通过以下命令启动应用程序:
mvn spring-boot:run
接着,我们需要生成一个可运行的jar包。使用以下命令打包:
mvn clean package
一旦jar包生成,可以使用以下命令运行:
java -jar target/my-web-app-0.0.1-SNAPSHOT.jar
如果一切顺利,您可以在控制台中看到“Hello World!”的输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven 项目生成jar运行时提示“没有主清单属性” - Python技术站