Dynamic Web Project에 Maven을 연동하는 방법입니다.

과정에 대한 설명은 보다 자세한 전달을 위해 사진으로 대체 하였습니다.

 

 

 

1. 처음 만들어진 Dynamic Web Project의 구성입니다.

 

 

 

 

2. 프로젝트 우클릭 -> Configure -> Convert to Maven Project 클릭

 

 

 

 

3. 정보 입력 후 Finish 클릭

 

 

 

 

4. 새로 생성된 pom.xml 파일 확인 후 더블 클릭

 

 

 

 

5. 초기 구성된 pom.xml에서 테스트를 위해 내용중 아래 <packagin>과 <build> 사이에

    <dependencies> ~ </dependencies>부분을 추가 합니다.

  war
 
 	
		
		    org.mariadb.jdbc
		    mariadb-java-client
		    2.3.0
		 
 	
 
  
  

 

 

 

 

6. 프로젝트 우클릭 -> Maven -> Update Project 클릭

 

 

 

 

7. 테스트를 위해 pom.xml 에 입력한 mariadb jar 파일이 추가된것을 확인 하실 수 있습니다.

 

스프링 프로젝트를 처음 생성 했는데, unknown 에러가 발생하여 난감하신 분들이 많다고 생각됩니다.

아래 그림(1-1), 그림(1-2) 같은 에러가 발생 하는 분들에게 도움이 되고자 포스팅 합니다.

 

해당 문제는 막 생성된 maven을 생성 할 수 있게 pom.xml 에 등록을 해주시면 쉽게 해결 됩니다.

 

 

그림(1-1)
그림(1-2)

 

 

 

1. https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-jar-plugin 

   해당 URL에서 사용 하고 싶으신 플러그인 버전을 선택 해주세요.

 

Maven Repository: org.apache.maven.plugins » maven-jar-plugin

Builds a Java Archive (JAR) file from the compiled project classes and resources. VersionRepositoryUsagesDate3.1.x3.1.2Central 0 May, 20193.1.1Central1Dec, 20183.1.0Central5Apr, 20183.0.x3.0.2Central10Jun, 20163.0.1Central 0 Jun, 20163.0.0Central 0 May, 20

mvnrepository.com

 

 

 

2. pom.xml 의 <properties>에 아래와 같이 추가 해주고, 해당 jar파일이 다운로드 될 때까지 기다려 주세요.

	
	
		3.1.1
		1.8
	

위에 글이 깨지시는 분은 아래 텍스트를 추가 해주세요 !

<properties>  <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties>

 

 

 

3. 우선 pom.xml 에 에러가 해결된것을 확인 하실 수 있지만, 여전히 프로젝트 아이콘에는 에러 표시가 존재 합니다.

그림(3-1)

 

 

4. 'Problems' 항목에서 해당 에러를 확인 후, 그림2, 3과 같이 우클릭 -> 'Quick Fix' -> 'Finish' 버튼을 눌러주세요. 

(못 찾으시면, 상단 Window -> Show View -> Problems 를 선택 해주세요)

그림(4-1)
그림(4-2)
그림(4-3)

 

 

 

5. 해당 과정을 완료 하시면 그림(5-1) 같이 모든 에러가 해결 됬음을 확인 하실 수 있습니다.

그림(5-1)

 

안녕하세요, 지난주 까지 스프링+Maven 프로젝트를 진행 하고 있었는데, 갑작스럽게 스프링부트+Gradle을 진행하게 되었습니다.

회사에 계신 사수분이 지금 환경을 더 잘 한다고 하셔서 많이 배우고자 변경 하게 되었습니다.


Gradle는 Ant 와 Maven 의 장점을 합쳐 만든 빌드 도구이며 4.x 버전 이후로 개발에 최적화가 진행 되었다고,

빠른 빌드 속도, 동적 요소 관리 유연, 코드 길이와 가독성이 좋은 등 여러가지 장점이 있다고 합니다.




저는 이클립스 기반의 STS를 이용 해서 프로젝트를 생성 하겠습니다.

STS설치, JDK설치 및 설정은 제가 작성한 포스트를 따라 해주시면 됩니다.



1-1. STS 설치는 아래 링크에서 필요한 버전을 다운 받아주세요, 저는 3.9.6 버전을 사용 설치 하였습니다.

https://spring.io/tools3/sts/legacy


1-2. JDK 다운 및 환경 변수 설정

https://gabrielyj.tistory.com/162?category=629044








2. File -> New -> Spring Starter Project










3. 이 부분에서는 프로젝트의 환경 설정을 해주게 됩니다


Service URL : 해당 프로젝트가 다운로드되는 URL 입니다. 프로젝트 생성 Finish 때 연동 됨

Name : 프로젝트 명을 선택, 원하시는 내용으로 네이밍 하셔도 됩니다.

Type : 빌드 방식 설정, Maven이나 Gradle 방식 선택. 선택 방식에 따라서 프로젝트의 구조가 변경 되게 됩니다. 

Packaging : Jar는 embeded 톰캣(내부) 를 사용하고 War는 외부 톰캣을 사용합니다. 기존 Spring의 서버 사용 방식과 똑같습니다.

Java Version : 현재 사용 중인 자바 버전 선택

Language : 프로젝트의 개발 언어 선택

Group / Package : 그룹 및 패키지명을 선택, 원하시는 내용으로 네이밍 하셔도 됩니다.










4. 프로젝트에서 사용될 라이브러리를 시작 하기전에 설정 할 수 있습니다.

하지만 기존 스프링의 Maven 에서는 pom.xml 에 사용자가 원하는 라이브러리를 언제든지 추가가 가능 한 것 처럼,

그레이들에서도 프로젝트 생성 후에 아무때나 추가 할 수 있습니다. 저는 우선 아무것도 선택하지 않고 진행 하겠습니다.










5. 3번 스텝에서 선택된 정보를 바탕으로, 입력된 url 을 통해 zip파일을 내려 받으며 다운로드 완료 후 자동으로 임포트 됩니다.

페이지에서 직접 받게 되시면 zip파일을 다운/압축 해제 후 워크스페이스에 임포트 하시면 됩니다.









6. 생성 완료 후 프로젝트의 구조를 확인 할 수 있습니다.

우선 프로젝트 실행을 한 번 시켜 본 후 , 각 폴더 및 파일의 설명은 다음 포스트에서 진행 하겠습니다.

src/main/java 패키지에 TestController.java 클래스를 만드신 후 아래 간단한 컨트롤러 코드를 입력 해주세요.


package com.theblack.page;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
	@RequestMapping(value="/")
	public String testMethod() {
		return "HelloWorld";
	}
}







7. Run -> Run As -> Spring Boot App 을 실행 하신 다음, 인터넷 창에 localhost:8080 및 설정하신 포트를 입력 해주시면,

아래 첨부된 그림처럼 HelloWorld 가 표시 되는것을 확인 하실 수 있습니다. 










실무에서 두개 이상의 프로젝트를 진행하다 보면 각 프로젝트가 환경이 다를 수 있습니다.

저도 기존에 작업하던 프로젝트 말고 새로운 프로젝트를 진행 하고 있습니다.

그래서 Maven의 라이브러리 들이 충돌 되지 않도록 각 프로젝트(워크스페이스) repository를 다르게 설정 하였습니다.


아래 과정은 기존 default 경로(c:/user/.m2/repository)가 아닌 자신이 원하는 경로에 maven을 설정하는 내용 입니다.



1. 설치된 Maven 폴더->config-> setting.xml 파일을 열어줍니다.

그리고 중간쯤에 있는 <localRepository> 부분의 주석을 그위로 이동한 뒤, 원하는 경로명을 입력 해줍니다.








2. 프로젝트가 아닌 워크스페이스의 Preferences -> Maven -> Installations 에서 Add버튼 클릭

(자료.1) 아래 (자료.2) 처럼 위에서 수정하신 setting.xml 이 존재하는 경로를 등록 해줍니다.

setting.xml 수정하신 경로는 maven 설치 경로와 똑같습니다.


(자료.1)



(자료.2)






3. 마지막으로  Preferences -> Maven -> User Settings 항목에서 User Settings 부분에 

모든 과정을 마친 setting.xml 를 등록 해줍니다. 그러면 그 아래 항목인 Local Repository 에 

입력한 로컬 경로가 자동으로 표시 됩니다.




처음 스프링 프로젝트를 생성한 다음 pom.xml 에 있는 Maven 버전을 수정 해야 합니다.

cmd 창에서 mvn -v 명령어를 입력 하시면 아래와 설치된 해당 maven의 정보가 출력 됩니다.










pom.xml 파일에 입력된 내용 중 <version>에 설치된 maven 의 버젼을 입력 해주시고,

그 아래 <source> 와 <target>에는 설치된 자바 버젼을 입력 해주시면 됩니다.







스프링에서 라이브러리를 자동으로 관리해주는 Maven을 사용하기 위해

메이븐을 설치 및 환경 변수 설정을 해줘야 합니다.


아래 링크로 이동 후 다운로드 해주세요.


http://maven.apache.org/download.cgi








빨간 박스의 압축 파일을 다운로드 한 다음 C드라이브의  Program Files에 복사 후 붙여넣어 주세요.

그 다음에는 환경 변수 설정을 해야 합니다.









위에 처럼 변수 이름은 MAVEN_HOME 으로 설정 하신 다음,

변수 값으로는 폴더가 존재하는 경로를 넣어주면 됩니다.(C드라이브에 붙여넣은 폴더 경로)


그다음 다운로드와 설정이 완료 됬는지 확인 하기 위해서 cmd창을 열으신다음

mvn -version 

위 명령어를 입력 하세요.

아래 처럼 나오면 다운 및 설정에 성공한 것이고, 실패 했다면 처음부터 다시 실행 해주세요 :) 





Can not find the tag library descriptor for "http://  java.sun.com/jsp/jstl/core"


이런 에러가 발생한다면, 우선 pom.xml 로 가서 'javax.servlet' 부분을 확인 하세요


<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>


하지만 해당 부분이 별 문제가 없다면, Project를 clean 해보세요

* 상단 메뉴 -> Project -> Clean -> All projects or 해당 프로젝트 선택 후 'OK'


그래도 안 되신다면, 

Maven 저장 경로에서 pom.xml에 등록된 jstl의 jar파일이 있는지 확인 해주세요.

만약 없으면 Maven 업데이트를 해주면 자동으로 다시 설치 됩니다.

* 프로젝트 폴더 -> 우클릭 -> Maven -> Update Project


보통 pom.xml을 잘 못 만지거나, 아무런 이유 없이 발생 하더군요...

아무런 이유가 없다면 첫 번째 방법을 써보시고,

아니라면 두 번째 방법을 써보세요 :-)


java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException

에러는 pom.xml 이나 web.xml 잘 못 건드렸을떄, 또는 아무런 이유없이... 발생 됩니다.

(세개 모두 직접 겪어 봤습니다ㅠㅠ)


이 에러를 해결하기 위해서 이 방법들을 사용했습니다.

이 순서로 한 번 진행 해보세요




1. 프로젝트를 clean 해줍니다.

   * 상단 메뉴 -> 'Project' -> 'Clean' -> All projects or 해당 프로젝트 선택


2. Tomcat server를 Clean

   * Server 의 동작을 원하는 서버를 선택 후 우클릭 하시면 clean 메뉴가 있습니다.


3. 현재 사용중이 Tomcat 폴더의 servlet-api.jar을 사용중인 jdk lib에 붙여넣습니다.

   * 


4. Maven Repository의 javax servlet를 삭제 후 업데이트 합니다.


5. Maven Repository의 모든 폴더 삭제 후 업데이트 합니다. 

   * 프로젝트 -> 우클릭 -> Maven -> Update Project


6. javax.servlet-api 버젼을 3.1.0 으로 설정

   * pom.xml 에서 해당 dependency  에서 설정 해주면 됩니다.


7. 톰캣 폴더를 통째로 삭제 후 재설치




저는 이 방법을 사용 했을때 다행이도 해결이 되었습니다.

다른 분들도 꼭 해결 하시길... 바랍니다 :-)


+ Recent posts