반응형
들어가며
설명
- 각 모듈간의 코드를 서로 가져다 쓸 수 있도록 한 프로젝트로 묶어 관리하는 예제
- 모듈간에 코드를 가져다 쓰기 위해서는 최상위 모듈을 두어 연관 관계를 맺어야 한다.
- 해당 예제에서는 library 모듈의 Calculator 코드를 application 모듈에서 가져다 쓰기 위해 modules-example 모듈에서 연관 관계를 맺는 것을 설명
modules-example 모듈
설명
- 모듈간의 연관 관계를 맺기 위해 필요한 최상위 모듈
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>org.example</groupId>
<artifactId>maven-modules-example</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 최상위 모듈은 packaging 타입이 pom이어야함 -->
<packaging>pom</packaging>
<!-- 모듈 관계 설정 -->
<modules>
<module>library</module>
<module>application</module>
</modules>
</project>
library 모듈
설명
- Calculator 코드를 제공하는 모듈
- 해당 예제에서는 modules-example/library 경로에 프로젝트 생성
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>org.example</groupId>
<artifactId>library</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Calculator
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
application 모듈
설명
- library 모듈의 Calculator 코드를 가져다 쓰는 모듈
- 해당 예제에서는 modules-example/appllication 경로에 프로젝트 생성
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>org.example</groupId>
<artifactId>application</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- library 모듈 의존성 추가 -->
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>library</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Application
public class Application {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int result = calculator.add(1, 5);
System.out.println(result); // 6
}
}
반응형
'Development > Maven' 카테고리의 다른 글
[Maven] local repository에 jar 배포 및 사용하기 (0) | 2019.02.16 |
---|---|
[Maven] jacoco-maven-plugin 적용하기 (0) | 2018.10.16 |
[Maven] maven-checkstyle-plugin 적용하기 (0) | 2018.07.23 |
[Maven] pom.xml 설정 (0) | 2018.07.23 |
[Maven] 설치하기 (0) | 2017.01.30 |