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 파일이 추가된것을 확인 하실 수 있습니다.

 

이번에 스프링을 훨씬 더 깊게 공부하기 위해, 제 마음속 스프링의 신 백기선님의 강의를 듣기 시작 했습니다.

백기선님은 강의 진행에 IntelliJ 를 사용하시는데, 저는 굳이(?) 이클립스를 이용해서 진행 하고 싶었습니다.

분명...인텔리제이가 어려워 이클립스를 사용하실 분이 계시다는 생각으로... 도움이 되고자 포스팅 합니다.

 

 

 

1. 우선 이클립스 상단 메뉴의 File->New->Others에서 SCM을 검색 하신다음, 아래 항목을 선택 해주세요.

 

 

 

 

2. SCM URL 항목에서 git을 선택 하신다음, git repository URI를 입력 하고 Finish 눌러주세요.

 

 

 

 

3. 위에 과정을 거치면 빌드를 위해 Maven이 열심히 파일들을 다운로드 받습니다.

 처음 이 과정을 거치시는 분은 상당히 많은 시간이 소요될 수 있습니다.

 

 

 

4. 빌드가 완료되서 프로젝트가 완성 되면 좋겠지만... 제가 직장 동료의 피씨와 제 노트북으로도 테스트 해본 결과

   공통된 에러가 발생 했습니다.

Multiple annotations found at this line:  - Execution default-testResources of goal    org.apache.maven.plugins:maven-resources-plugin:   3.1.0:testResources failed: Plugin    org.apache.maven.plugins:maven-resources-plugin:3.1.0 or one    of its dependencies could not be resolved: Failure to transfer    com.google.code.findbugs:jsr305:jar:2.0.1 from https://   repo.maven.apache.org/maven2 was cached in the local    repository, resolution will not be reattempted until the update    interval of central has elapsed or updates are forced. Original    error: Could not transfer artifact    com.google.code.findbugs:jsr305:jar:2.0.1 from/to central    (https://repo.maven.apache.org/maven2): The operation was    cancelled. (org.apache.maven.plugins:maven-resources-plugin:   3.1.0:testResources:default-testResources:process-test-resources)

해당 에러는 maven-resources-plugin 이 없어 빌드가 진행되지 않아서 발생 합니다. 해당 플러그인의 dependency를

pom.xml 에 등록하면 에러 사라집니다. 아래 URI에서 원하시는 버전을 선택 하시고,

아래 소스 코드를 pom.xml dependencies에 등록 해주시면 됩니다.

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

		

    org.apache.maven.plugins
    maven-resources-plugin
    3.1.0

 

 

 

5. pom.xml 저장 후 프로젝트 우클릭->Run As->Maven Install 을 실행 해주세요. 

  그러면 프로그램이 열심히 돌기 시작합니다.

 

 

 

 

 

6. 빌드가 종료되면, 프로젝트 우클릭 -> Run As -> Spinrg Boot App 을 실행 해주세요.

   그림(2)와 같이 서버가 실행 됩니다.

  

그림(1)

 

그림(2)

 

 

 

7. 웹 브라우저에 localhost:포트번호(8080) 을 입력 하시면 시작된 고대하던 petclinic 페이지가 접속 됩니다.

 

 

지난 2018년 1월에 국비지원 교육을 이수하며 까먹지 말자란 결심으로 스프링 프로젝트 생성 관련 포스팅을 했습니다.

1년이 지난 지금, 적어도 그때보다 더 많은 공부를 하고난 후, 지금 보니까 너무 형편 없는 포스트 였습니다...

그래서 지금의 지식으로 다시 한 번 스프링 프로젝트 생성 및 초기 설정을 진행 하려고 합니다.


 틀린 부분이 있으면 언제 지적 해주셨으면 좋겠습니다 






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

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




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

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


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

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


1-3. Maven 다운 및 환경 변수 설정

https://gabrielyj.tistory.com/161?category=735500






모든 준비가 완료되었습니다. 바로 스프링 프로젝트 생성을 진행 하겠습니다. 

2-1. 이클립스 좌측 상단 File -> New -> spring 검색 후 Spring Legacy Project를 선택 해주세요.







2-2. 프로젝트 이름을 입력 한뒤, Templates 에서는 'Spring MVC Project'를 선택 하신다음, Configure tmeplates 에 들어가주세요.

저는 프로젝트를 2개 진행 할 수 있는 상황을 고려하여 Maven Repository 설치 경로를 local 로 잡겠습니다.






2-3. 설치된 Maven 폴더에 있는 setting.xml 파일을 열고, 그 안에 있는 <localRepository> 경로를 수정 합니다.

사용자가 원하는 경로를 설정 하실 수 있고, 그냥 default를 사용 하고 싶으시면 그대로 놔두고 바로 2.6 을 진행 해주세요.








2-4. Maven -> Installations -> Add 를 선택해서, 그림(2-4-2) 처럼 메이븐 설치 경로를 지정 해줍니다.



(그림 : 2-4-1)


(그림 : 2-4-2)







2-5. Maven -> User Settings -> Browse 를 선택해서, 2-3에서 수정한 setting.xml 을 선택 합니다.

그러면 자동으로 아래  Local Repository 가 세팅됩니다.

그리고 Apply and Close 를 하시고 Next를 합니다.


(그림 : 2-5-1)






2-6. 마지막으로 패키지 이름을 정해줍니다.

저는 보통 com.프로젝트.모듈.패키지 이런식으로 네이밍을 합니다.







2.7 생성된 프로젝트에서 맨 아래에 있는 pom.xml 파일을 열어서 스프링, 자바, 메이븐 버전 설정을 해야 합니다.





<Properties> 

<java-version> 은 현재 등록된 jdk 버전을 입력 해주시면 됩니다.

<org.springframework-version> 은 사용하고 싶은 스프링 버전을 입력 해주시면 됩니다.

하지만 스프링 버전별로 최소 요구 자바 버전이 다르고 잘 못된 버전을 입력 하시면 에러가 발생하니 주의 해주세요!


<plugin>

<version> 설치된 메이븐의 버전

<source> <target> 설치된 자바의 버전을 입력 해주시면 됩니다.






이번 포스트에서는 pom.xml 까지만 설정 하고 

그 다음 포스트에서 web.xml 과 servlet-context.xml 등 다른 내용을 진행 하겠습니다.


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을 잘 못 만지거나, 아무런 이유 없이 발생 하더군요...

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

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





2019년 3월에 새롭게 스프링 프로젝트 생성, 초기설정을 포스팅 하였습니다.

훨씬 더 자세하게 설명 되어 있습니다. 아래 링크를 참고 해주세요 :)

https://gabrielyj.tistory.com/166?category=735500













프로젝트 우클릭 → Properties → Project Facets →  Java 버젼 설정 및 Runtime 서버 등록.







pom.xml 에서 원하는 내용 및 등록 해줌

프로젝트 생성 직후에는 자바 버젼 및 스프링 프레임 워크 버젼만 설정해줘도 괜찮아요


	
		1.8
		4.2.4.RELEASE
		1.6.10
		1.6.6
	



막 프로젝트가 완성 되었다면 이정도 설정으로 충분하고,

다음 Mybatis 떄부터 복잡하고 중요해집니다ㅜㅜ






	
 	
		index.jsp
		


 	
	
		contextConfigLocation
		/WEB-INF/spring/root-context.xml
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
		characterEncoding
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		characterEncoding
		*.do
	


	
	
		action
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			
			/WEB-INF/config/presentation-layerbiz.xml
		
	
		
	
		action
		*.do
	







Missing artifact com.oracle:ojdbc 버젼 + 세부버젼 관련 에러는,

OJDBC 를 이용하려 하는데 Dependency만 작성하고 Repository 를

작성하지 않았거나, 해당 OJDBC 파일을 찾을 수 없을때 발생 합니다.


OJDBC는 메이븐이 직접 설정을 해주지 않기 때문에, 직접 pom.xml 에 입력 하셔야 합니다.


<repository>

<id>oracle</id>

<name>ORACLE JDBC Repository</name>

<url>http://maven.jahia.org/maven2</url>

</repository> 


위에 부분을 <repositories> 와 </repositories> 사이에 추가 해주시면 되고,

추가 해주시면 해당 url 에서 자동으로 추가 해줍니다 !!


※ 그래도 에러가 표시되는 분들은, OJDBC 버젼 이름과 Dependency 에 작성된 이름이

매치되는지 확인 해주세요!

+ Recent posts