나는 의문점이 들었다. 만약 똑같은 POM.xml 파일로 컴파일된 메이븐 프로젝트는 루트폴더의 이름만 바꾼뒤, 이클립스에 import가 될까?
이런 삽질? 을 한 이유는 메이븐 프로젝트를 구별할수있는 지표가 무엇인지 궁금했던거 같다.
그래서 난 chap03 의 POM.xml을 똑같이 사용해서 다시 만든 메이븐 프로젝트로 루트폴더이름만 다르게 해서 이클립스에 import 했을때는 이미 존재하는 아티팩트 ID 이기에 이클립스에 임포트 할수 없다고 나왔다.
그래서 난 어? 그럼 아티팩트 ID만 바꾼다면 다시 삽입되지 않을까? 라는 생각과, 그렇다면 아티펙트 ID가 메이븐 프로젝트를 개별적으로 구별해주는 지표인가? 라는 궁금증이 들었다.
메이븐 설정파일인 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>sp5</groupId>
<artifactId>sp5-chap03</artifactId> //이부분을 변경
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
artifactId 있는 부분을 sp5-chap03 demo로 바꾸고 윈도우에서 컴파일 하였다.
그런데 컴파일이 안되었다.
바로 이름 명명규칙을 어겨서인거 같다.
그래서 아티펙트 ID에 sp5-chap03demo 이렇게 띄어쓰기를 없애고 컴파일하니, 정상적으로 컴파일 되었다.
** 또 알게된 사실이 있는데, 한번 컴파일 한 것은, 메이븐 프로젝트가 생성된다 는 뜻이다. 나는 그냥, 이클립스에 임포트할때 시간 줄일라고 미리 컴파일 해놓는것인줄 알았는데 그것이 아니라, 내가 생성한 sp5-chap03 demo 파일 을 루트폴더로 하는 메이븐 프로젝트를 이미 만들어버린 것이다.
즉, 이클립스에는 이미 "만들어져있는 메이븐 프로젝트"를 작업을 위해 넣어주기만 하는 것이다.
결론: 우리가 mvn compile 을 실행하면 실행 대상이되는 폴더를 루트폴더로 하는 하나의 메이븐 프로젝트가 만들어진다.
또한 메이븐 프로젝트를 구별짓는 식별자는, 그룹 ID, 아티팩트 ID, 버전 이 있고, 이것은 Pom.xml 파일에서 설정해준다.
이클립스에 같은 Pom.xml로 만들어진 메이븐 프로젝트가 import안되는 이유가 위 식별자들이 동일하기 때문이다. 다르게 고치니 됬다.
참고 블로그.
[SPRING]Maven 프로젝트 groupId, artifactId, version 이란? (tistory.com)
공부시간 1시간. 순공시간 40분.
'기록 > Spring framework' 카테고리의 다른 글
스프링의 역할: 객체 조립기(@Configuration) (0) | 2021.10.19 |
---|---|
객체 조립기(Assembler)의 필요성. 2021-10-18 (0) | 2021.10.15 |
윈도우 콘솔창에서 메이븐 프로젝트 컴파일하기. 2021-10-12 (0) | 2021.10.12 |
복습 chap 02. , 이클립스에 메이븐 프로젝트 import. , 이클립스와 자바 프로젝트와의 관계, 인텔리제이와 이클립스의 관계. (0) | 2021.10.07 |
한가지 Pointcut으로 여러 Aspect를 사용하기, 프록시 적용순서. 2021-06-09 (1) | 2021.06.09 |