오픈소스를 공부하던 중에 샘플앱을 maven으로 빌드해야 했습니다. maven을 사용해보지 않아서 좀 찾아봤는데요. 제가 알아본 내용을 간단히 정리해보았습니다.
Java 샘플 앱을 만들고, 빌드하고, 실행해보는 순서로 설명하겠습니다.
Ubuntu(Linux) 개발 환경을 기준으로 설명하였습니다.
1. 프로젝트 생성
폴더를 만들고, HelloWorld.java
파일을 만듭니다.
$ mkdir -p src/main/java/hello
$ vim src/main/java/hello/HelloWorld.java
HelloWorld.java
에는 다음 내용을 입력합니다.
package hello;
public class HelloWorld {
public static void main(String[] args) {
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}
Greeter.java
에는 다음 내용을 입력합니다.
$ vim src/main/java/hello/Greeter.java
package hello;
public class Greeter {
public String sayHello() {
return "Hello world!";
}
}
마지막으로 pom.xml
파일을 만듭니다.
$ vim pom.xml
pom.xml
는 Maven의 빌드 설정 파일입니다. 다음과 같은 내용을 입력합니다.
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-maven</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>hello.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
위 pom.xml
에서 가장 중요한 것은 아래 코드입니다. 자바코드가 처음 실행될 때 main이 실행되는 것은 모두 아실텐데요.
mainClass는 main이 위치한 클래스를 알려주는 것입니다. 이렇게 해야 jar를 실행할 때 main이 실행될 수 있습니다.
<mainClass>hello.HelloWorld</mainClass>
지금까지 모두 완료하였다면, 프로젝트는 다음과 같은 구조가 됩니다.
$ tree
.
├── pom.xml
└── src
└── main
└── java
└── hello
├── Greeter.java
└── HelloWorld.java
2. Maven 설치
빌드를 하기전에 먼저 Maven이 설치되어있는지 확인해야 합니다. mvn -v
로 설치되어있는지 확인해보세요.
dagger/examples/simple$ mvn -v
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 1.8.0_222, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-65-generic", arch: "amd64", family: "unix"
설치가 안되어 있다면 다음 명령어로 설치를 해야 합니다.
$ sudo apt install maven
3. 빌드
pom.xml
파일이 있는 위치에서 mvn package
명령어를 입력하시면 빌드가 되고 산출물은 동일 폴더에 생성됩니다.
dagger/examples/simple$ mvn package
pom.xml src
빌드가 완료되면 target
이라는 폴더에 빌드 산출물이 생성됩니다.
4. 실행
jar파일을 실행해보면 다음과 같이 Hello world!
를 출력합니다.
$ java -jar target/gs-maven-0.1.0.jar
Hello world!
References
Loading script...
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법