Develop

[Spring-Boot] eclipse에서 spring boot + maven 프로젝트 생성하기 / 실패함 이방법 사용x 본문

웹 개발/Spring

[Spring-Boot] eclipse에서 spring boot + maven 프로젝트 생성하기 / 실패함 이방법 사용x

개발 기록 2024. 3. 5. 10:46

 

eclipse에서 스프링부트 메이븐 프로젝트 생성하기


 

1. Maven 새 프로젝트 만들기

 

1-1

 

 

File

=> New

=> Maven Project

 

만약 없다면 Other에 들어가서 찾기

 

 

1-2

 

 

Next

 

 

1-3

 

maven-archetype-webapp 검색

=> org.apache.maven.archetypes 선택

=> next

 

 

1-4

 

 

Group Id 와 Artifact Id 를 입력후 Finish 

 

 

*  Group Id

: 프로젝트를 식별하는 ID 로 모든 프로젝트 사이에서 고유하게 식별하게 해 준다.

- 내가 컨트롤하는 도메인 이름이어야 한다.

- 하위 그룹은 얼마든지 추가할 수 있다.

ex) org.apach.maven

ex) org.apache.commons

 

- 프로젝트 구조를 사용하면 잘 구분되는 Group Id를 만들 수 있다.

만약 현재 프로젝트가 다중 모듈 프로젝트라면 부모 Group Id에 현재 프로젝트의 식별자를 추가하는 방식이 좋다.

ex) org.apache.maven.plugins

ex) org.apache.maven.reporting 

 

 

* Artifact Id

: 프로젝트 이름.jar 또는 war로 패키징 시 아티팩트 이름으로 생성 된다.

즉 버전 정보를 생략한 jar 또는 war 파일의 이름이다. 

(= 프로젝트 이름)

 

- 이름은 원하는 것으로 아무거나 정해도 괜찮다.

- 소문자로만 작성하도록 한다.

- 특수문자는 사용 금지

- 만약 써드 파티 jar 파일이라면 할당된 이름을 사용해야 한다.

ex) maven

ex) commons-math

 

1-5

 

 

 

tiles라는 이름을 가진 프로젝트가 생성되었다.

 


2. JAVA 버전 변경

 

2-1

 

 

새로 만든 프로젝트 클릭

=> 마우스 오른쪽 

=>  Properties

 

 

2-2

 

Java Build Path

=> Libraries

=> JRE 클릭 후 remove

 

 

2-3

 

Add Library

=> JRE System Library 클릭

=> Next

 

 

2-4

 

Workspace default JRE(jdk-11) 클릭

=> Finish

 

 

만약 등록해놓은 Jdk가 없다면 Installed JREs에서 설치한 java 파일 경로 등록하기

 

 

window - Preferences - Java - Installed JREs

( java 설치 시 java path 설정 확인 필수 )

 

 

2-5

 

jdk-11 버전으로 변경됨

 


3. pom.xml 수정

 

3-1

 

에서 1.7버전을 삭제

 

 

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source> <-- 삭제
    <maven.compiler.target>1.7</maven.compiler.target> <-- 삭제
</properties>

 

 


 

4. pom.xml 에 spring boot 설정 추가

 

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

	<!-- spring boot 설정 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.1.RELEASE</version>
		<type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.2.1.RELEASE</version>
    </dependency>
</dependencies>

 

spring boot 설정과 관련된 dependecy 2개 추가

(junit은 처음부터 있었음)

 

 

* spring-boot-starter-parent 

라이브러리 버전 충돌 해결을 위한 의존성 추가

: 프로젝트에 수많은 라이브러리를 추가할 경우 버전에 따라 충돌나는 경우가 많은데

spring boot의 starter 가 의존성 조합을 제공해 줄 때 start-parent 는 해당 의존성 조합들간 충돌 문제가 없는 검증된 버전들을 조합해서 의존성을 추가해주는 기능을 한다

Maven Repository: org.springframework.boot » spring-boot-starter-parent (mvnrepository.com)

 

 

* parent 태그

: java에서 배운 상속과 같다.

: parent를 상속받아서 그대로 사용하거나 재정의하여 사용할 수 있다.

 

출처 4번째 참고 글
출처 4번째 참고 글

 

 

pom.xml 전체 코드

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.may.springboot</groupId>
	<artifactId>springboot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>springboot Maven Webapp</name>
	<!-- FIXME change it to the project's website -->
	<url>http://www.example.com</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>

		<!-- spring boot starter-parent -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-parent</artifactId>
			<version>2.2.1.RELEASE</version>
			<type>pom</type>
		</dependency>
		
		<!-- spring boot starter web-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>2.2.1.RELEASE</version>
		</dependency>

		<!-- junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

  <build>
    <finalName>springboot</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

 

5. src/main/java 패키지 아래에 SpringBootEx 클래스 생성

package springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootEx {
	
	public static void main(String[] args) {
		SpringApplication.run(SpringBootEx.class, args);
		
	}
}

 

 

생성후 위의 코드 내용 적고나서 

해당 클래스를 java application으로 실행

 

 

 

 

 

 

 

 

콘솔창으로 실행되었음을 확인할 수 있다.

 


 

그러나 내가 원하는 

src/main/resources 와

application.properties가 없음,,,,

 

이 파일들이 있으려면 starter 로 만들어야했다.....

왜 만드는 방법이 여러개인지 모르겠음.....ㅜㅜ

 

starter로 만드는 방법

https://sseb32310.tistory.com/101

 

[Spring] spring boot 새프로젝트 만들기 + maven

스프링부트 새프로젝트 만들기 여러가지 방법중 가장 간단한 방법인듯 1. File => New => Other starter 검색 후 Spring Starter Project 클릭! 만약 File => New 했을 때 Spring Starter Project가 바로 보이면 클릭해도

sseb32310.tistory.com

 

 


 

참고한 글

 

[STS] Spring Boot Maven Project Create(메이븐을 이용한 스프링부트 프로젝트 생성) (tistory.com)

 

[STS] Spring Boot Maven Project Create(메이븐을 이용한 스프링부트 프로젝트 생성)

1. STS 설치 https://spring.io/tools Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual

crong-cat.tistory.com

 

Maven의 groupId 와 artifactId, 그리고 version - 기계인간 John Grib

 

Maven의 groupId 와 artifactId, 그리고 version

 

johngrib.github.io

 

pom.xml에 Start Spring-boot 의존성 추가 (tistory.com)

 

pom.xml에 Start Spring-boot 의존성 추가

pom.xml에 의존성 추가 1. 라이브러리 버전 충돌 해결을 위한 의존성 추가 spring-boot-starter-parent ==> 프로젝트에 수많은 라이브러리를 추가 할 경우 버전에 따라 충돌이 나는 경우가 많은데 Spring-boot

munhwasudo.tistory.com

 

 

pom.xml <parent>태그 (velog.io)

 

pom.xml <parent>태그

maven의 pom.xml을 보면 &이건 뭘까?우리는 java를 하면서 상속에 대해 배웠을 것이다. 똑같다.parent를 상속받아서 그대로 사용할수도 재정의해서 사용할수도 있다.저 parent에 들어가보면 기본 셋팅이

velog.io