下面是创建Spring Boot Maven多模块项目的完整攻略。
1. 创建Maven父级项目
首先,我们需要创建一个Maven父级项目,它将作为我们多模块项目的容器。使用以下命令创建一个空项目:
$ mvn archetype:generate -DgroupId=com.example -DartifactId=parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
2. 创建子模块
接下来,我们需要为父级项目创建一个或多个子模块。这些子模块将是我们开发应用程序的实际项目。使用以下命令创建子模块:
$ cd parent
$ mvn archetype:generate -DgroupId=com.example -DartifactId=backend -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
该命令创建了一个名为“backend”的子模块。
3. 添加Spring Boot依赖
在子模块的pom.xml中添加Spring Boot的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</dependency>
4. 添加Spring Boot插件
在子模块的pom.xml中添加Spring Boot Maven插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
5. 创建Spring Boot应用程序
我们已经准备好开始使用Spring Boot创建我们的应用程序。
- 创建类HelloController,并添加处理HTTP GET请求的方法hello:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
- 创建Spring Boot主类,将应用程序的入口点指向HelloController类:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
6. 构建和运行应用程序
现在我们已经完成了多模块项目和Spring Boot应用程序的创建。接下来,我们需要使用以下命令构建和运行应用程序:
$ mvn clean install
$ java -jar backend/target/backend-0.0.1-SNAPSHOT.jar
现在可以访问http://localhost:8080/hello来查看应用程序是否运行正常。
示例1
假如我们现在想要创建一个名为“frontend”的子模块,以托管我们的前端Vue.js应用程序。我们可以按照以下步骤创建子模块:
$ cd parent
$ mvn archetype:generate -DgroupId=com.example -DartifactId=frontend -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
在frontend子模块的pom.xml中添加Spring Boot的依赖和插件,以及maven-resources-plugin插件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</dependency>
<!-- 由于我们要开发vue,所以要添加相关的依赖 -->
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>vue</artifactId>
<version>2.6.12</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 资源所在位置,将内容复制到 target/classes 下 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
新建frontend/src/main/resources/static/index.html文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue App</title>
<!-- 引入 vue.js 文件 -->
<script src="/webjars/vue/2.6.12/dist/vue.js"></script>
</head>
<body>
<div id="app">
{{ message }}
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
</script>
</body>
</html>
新建frontend/src/main/java/com/example/frontend/controller/HomeController.java文件,内容如下:
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "index";
}
}
最后,构建和运行应用程序:
$ mvn clean install
$ java -jar frontend/target/frontend-0.0.1-SNAPSHOT.jar
现在可以访问http://localhost:8080/来查看我们的Vue.js应用程序是否运行正常。
示例2
假设我们有一个名为“common”的子模块,我们可以在其中放置所有多个子模块都需要使用的代码和资源。创建common子模块的方式与之前相同,然后在common子模块的pom.xml中添加以下内容:
<!-- 资源所在位置,将内容复制到 target/classes 下 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
这将确保我们的common子模块中的资源在多个子模块之间共享。同时,我们可以将任何通用代码放在common子模块中,以便多个子模块可以共享它。确保在每个子模块的pom.xml中添加对common模块的依赖:
<dependency>
<groupId>com.example</groupId>
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
以上就是创建Spring Boot Maven多模块项目的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot创建maven多模块项目实战代码 - Python技术站