first commit

This commit is contained in:
Klein 2024-05-30 10:44:30 +08:00
commit e17a99d158
27 changed files with 908 additions and 0 deletions

33
.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

18
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View File

@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
wrapperVersion=3.3.1
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip

33
land-api/.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

35
land-api/pom.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>land-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>api</name>
<description>api</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-common</artifactId>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-service</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,46 @@
package com.hy.api;
import com.hy.apiresponse.ApiResponse;
import com.hy.common.FileUploadUtils;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/file")
public class FileController {
@PostMapping("/uploadfile")
public ApiResponse<String> upLoadFile(@RequestParam("file") MultipartFile file) throws IOException {
if (FileUploadUtils.upLoadFile(file)){
return ApiResponse.success(null,"上传成功");
} else {
return ApiResponse.error(HttpStatus.BAD_REQUEST.value(), "上传失败");
}
}
@PostMapping("/uploadfiles")
public ApiResponse<String> uploadFiles(@RequestParam("files") MultipartFile[] files)throws IOException{
List<String> filelist = new ArrayList<>();
for (var file:files){
if (!FileUploadUtils.upLoadFile(file)){
filelist.add(file.getOriginalFilename());
}
}
if (filelist.isEmpty()){
return ApiResponse.success(null,"上传成功");
}else {
StringBuilder failedFiles = new StringBuilder();
for(var name :filelist){
failedFiles.append(name);
}
return ApiResponse.error(HttpStatus.BAD_REQUEST.value(), "上传失败的文件:" + failedFiles.toString());
}
}
}

View File

@ -0,0 +1,83 @@
package com.hy.api;
import com.hy.apiresponse.ApiResponse;
import com.hy.common.JsonUtils;
import com.hy.dao.entity.GeoData;
import com.hy.service.GeoDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/geodata")
public class GeoDataController {
@Autowired
private GeoDataService geoDataService;
@GetMapping("/{name}")
public ApiResponse<GeoData> getGeoDataByName(@PathVariable String name) {
GeoData geoData = geoDataService.getGeoDataByName(name);
if (geoData != null) {
return ApiResponse.success(geoData);
} else {
return ApiResponse.error(HttpStatus.NOT_FOUND.value(), "GeoData not found");
}
}
@GetMapping
public ApiResponse<List<GeoData>> getAllGeoData() {
List<GeoData> geoDataList = geoDataService.getAllGeoData();
return ApiResponse.success(geoDataList);
}
@PostMapping
public ApiResponse<Void> insertGeoData(@RequestBody GeoData geoData) {
try {
geoDataService.insertGeoData(geoData);
return ApiResponse.success(null, "GeoData inserted successfully");
} catch (Exception e) {
return ApiResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Failed to insert GeoData");
}
}
@PostMapping("/insertbypath")
public ApiResponse<Void> insertByPath(@RequestParam String geoPath) {
try {
var map = JsonUtils.json2Map(geoPath);
for (Map.Entry<String, String> entry : map.entrySet()) {
GeoData geoData = new GeoData(); // 创建新的 GeoData 实例
geoData.setName(entry.getKey());
geoData.setGeojson(entry.getValue());
geoDataService.insertGeoData(geoData); // 插入到数据库
}
return ApiResponse.success(null, "Successfully inserted GeoData");
} catch (Exception e) {
return ApiResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Failed to insert GeoData");
}
}
@PutMapping
public ApiResponse<Void> updateGeoData(@RequestBody GeoData geoData) {
try {
geoDataService.updateGeoData(geoData);
return ApiResponse.success(null, "GeoData updated successfully");
} catch (Exception e) {
return ApiResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Failed to update GeoData");
}
}
@DeleteMapping("/{name}")
public ApiResponse<Void> deleteGeoData(@PathVariable String name) {
try {
geoDataService.deleteGeoData(name);
return ApiResponse.success(null, "GeoData deleted successfully");
} catch (Exception e) {
return ApiResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Failed to delete GeoData");
}
}
}

View File

@ -0,0 +1,40 @@
package com.hy.apiresponse;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class ApiResponse<T> {
private int code;
private String message;
private T data;
public ApiResponse() {}
public ApiResponse(int code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public static <T> ApiResponse<T> success(T data) {
return new ApiResponse<>(200, "Success", data);
}
public static <T> ApiResponse<T> success(T data, String message) {
return new ApiResponse<>(200, message, data);
}
public static <T> ApiResponse<T> error(int code, String message) {
return new ApiResponse<>(code, message, null);
}
public static <T> ApiResponse<T> warning(int code, String message, T data) {
return new ApiResponse<>(code, message, data);
}
public static <T> ApiResponse<T> info(int code, String message, T data) {
return new ApiResponse<>(code, message, data);
}
}

33
land-common/.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

46
land-common/pom.xml Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>land-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>common</name>
<description>common</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,30 @@
package com.hy.common;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class FileUploadUtils {
@Value("${file.upload-dir}")
private static String uploadDir="D:\\testlearn\\";
public static boolean upLoadFile(MultipartFile multipartFile) throws IOException {
if (multipartFile.isEmpty()) {
return false;
}
String originalFilename = multipartFile.getOriginalFilename();
String subFolderName = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String uploadFilePath = uploadDir + subFolderName + File.separator + originalFilename;
File file = new File(uploadFilePath);
File parentDir = file.getParentFile();
if (parentDir.exists() || parentDir.mkdirs()) {
multipartFile.transferTo(file);
return true;
} else {
return false;
}
}
}

View File

@ -0,0 +1,22 @@
package com.hy.common;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
public class JsonUtils {
public static Map<String,String> json2Map(String path) throws IOException {
Map<String, String> geoJsonMap = new HashMap<>();
String content = new String(Files.readAllBytes(Paths.get(path)));
geoJsonMap.put(Path.of(path).getFileName().toString().split("\\.")[0],content);
geoJsonMap.forEach((key,value)->{
System.out.println(key);
System.out.println(value);
});
return geoJsonMap;
}
}

View File

@ -0,0 +1,70 @@
package com.hy.common;
import org.gdal.gdal.gdal;
import org.gdal.ogr.*;
import java.io.File;
/*
* shp文件操作工具类
* */
public class ShpUtils {
/*
* gdal配置
* */
public static void setConfig() {
gdal.AllRegister();
ogr.RegisterAll();
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
}
/*
* shp文件转换为geojson,输入参数为shp文件绝对路径和输出文件的绝对路径
* 结果生成一个geojson文件
* */
public static void shp2Json(String shpfilepath,String outfilepath) {
try {
File file = new File(shpfilepath);
if (!file.exists()) {
throw new IllegalArgumentException("File does not exist: " + shpfilepath);
}
DataSource dataSource = ogr.Open(shpfilepath, 1);
if (dataSource == null) {
throw new RuntimeException("Failed to open data source: " + shpfilepath);
}
Layer layer = dataSource.GetLayer(0);
if (layer == null) {
throw new RuntimeException("Layer is null");
}
Driver jsondr = ogr.GetDriverByName("GeoJSON");
if (jsondr == null) {
throw new RuntimeException("Failed to get GeoJSON driver");
}
DataSource jsonds = jsondr.CreateDataSource(outfilepath+".geojson");
if (jsonds == null) {
throw new RuntimeException("Failed to create GeoJSON data source");
}
int geometrytype = layer.GetGeomType();
Layer geojsonlayer = jsonds.CreateLayer(layer.GetName(), layer.GetSpatialRef(), geometrytype);
if (geojsonlayer == null) {
throw new RuntimeException("Failed to create GeoJSON layer");
}
for (int i = 0; i < layer.GetLayerDefn().GetFieldCount(); i++) {
geojsonlayer.CreateField(layer.GetLayerDefn().GetFieldDefn(i));
}
Feature feature;
while ((feature = layer.GetNextFeature()) != null) {
geojsonlayer.CreateFeature(feature);
feature.delete();
}
dataSource.delete();
jsonds.delete();
layer.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
}
}

View File

@ -0,0 +1,2 @@
file:
upload-dir: D:\testlearn\

33
land-dao/.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

32
land-dao/pom.xml Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>land-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dao</name>
<description>dao</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-common</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.14</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,14 @@
package com.hy.dao.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GeoData {
public String name;
public String geojson;
}

View File

@ -0,0 +1,17 @@
package com.hy.dao.mapper;
import com.hy.dao.entity.GeoData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface GeoDataMapper {
GeoData getGeoDataByName(String name);
List<GeoData> getAllGeoData();
void insertGeoData(GeoData geoData);
void updateGeoData(GeoData geoData);
void deleteGeoData(String name);
}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hy.dao.mapper.GeoDataMapper">
<resultMap id="GeoDataResultMap" type="com.hy.dao.entity.GeoData">
<id property="name" column="name" />
<result property="geojson" column="geojson" />
</resultMap>
<select id="getGeoDataByName" resultMap="GeoDataResultMap">
SELECT * FROM geodata WHERE name = #{name}
</select>
<select id="getAllGeoData" resultMap="GeoDataResultMap">
SELECT * FROM geodata
</select>
<insert id="insertGeoData">
INSERT INTO geodata (name, geojson) VALUES (#{name}, #{geojson})
</insert>
<update id="updateGeoData">
UPDATE geodata SET geojson = #{geojson} WHERE name = #{name}
</update>
<delete id="deleteGeoData">
DELETE FROM geodata WHERE name = #{name}
</delete>
</mapper>

0
land-service/.gitignore vendored Normal file
View File

35
land-service/pom.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>land-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>service</name>
<description>service</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-dao</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,13 @@
package com.hy.service;
import com.hy.dao.entity.GeoData;
import java.util.List;
public interface GeoDataService {
GeoData getGeoDataByName(String name);
List<GeoData> getAllGeoData();
void insertGeoData(GeoData geoData);
void updateGeoData(GeoData geoData);
void deleteGeoData(String name);
}

View File

@ -0,0 +1,40 @@
package com.hy.serviceImpl;
import com.hy.dao.entity.GeoData;
import com.hy.dao.mapper.GeoDataMapper;
import com.hy.service.GeoDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GeoDataServiceImpl implements GeoDataService {
@Autowired
private GeoDataMapper geoDataMapper;
@Override
public GeoData getGeoDataByName(String name) {
return geoDataMapper.getGeoDataByName(name);
}
@Override
public List<GeoData> getAllGeoData() {
return geoDataMapper.getAllGeoData();
}
@Override
public void insertGeoData(GeoData geoData) {
geoDataMapper.insertGeoData(geoData);
}
@Override
public void updateGeoData(GeoData geoData) {
geoDataMapper.updateGeoData(geoData);
}
@Override
public void deleteGeoData(String name) {
geoDataMapper.deleteGeoData(name);
}
}

33
land-web/.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

60
land-web/pom.xml Normal file
View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>land-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>web</name>
<description>web</description>
<parent>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-service</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,21 @@
package com.hy;
import com.hy.dao.entity.GeoData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}

View File

@ -0,0 +1,14 @@
server:
port: 8080
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://123.249.39.101:5432/gisserver
username: postgres
password: dujunming520
mybatis:
# config-location: classpath:mybatis-config.xml
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.hy.dao.entity
file:
upload-dir: D:\testlearn\

75
pom.xml Normal file
View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hy</groupId>
<artifactId>land</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>land</name>
<description>land</description>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
</properties>
<modules>
<module>land-web</module>
<module>land-common</module>
<module>land-service</module>
<module>land-api</module>
<module>land-dao</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hy</groupId>
<artifactId>land-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
</project>