본문 바로가기
Linux

[Linux/Ubuntu] 우분투에 Maven 설치 및 프로젝트 생성하기

by dev_haha 2024. 1. 16.

오늘도 눈물나는 리눅스 여정.... 시작

우분투에서 셀레니움 쓰려면

메이븐으로 의존성 넣어줘야 하는거 같아서 메이븐 설치 시좍


Maven이란?

https://velog.io/@changyeonyoo/Maven-%EC%9D%B4%EB%9E%80

 

Maven 이란?

Maven이란 자바용 프로젝트 관리 도구이다.프로젝트를 위해 작성한 Java코드나 여러 자원들(.xml, .jar, .properties)를 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이다.또

velog.io


sudo apt update
sudo apt install maven
mvn -version

업뎃하고
메이븐 설치하고
버전 확인해주고

 

mkdir mavenTestProject
cd mavenTestProject

프로젝트 폴더를 생성하고
들어간다

 

mvn archetype:generate -Dgroup=com.first.mavenapp -DartifactId=realMaven -DarchetypeArtifactId=maven-archetype=quickstart

mvn 명령어로 프로젝트를 생성한다.

  • 프로젝트 구조 템플릿 : maven-archetype-quickstart
  • 프로젝트 명 : realMaven
  • 그룹식별자 : com.first.mavenapp

 

이렇게 하면 엄청난 양의 파일들, 라이브러리들이 설치됨.

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains) : 숫자 : 

중간에 여기에서 멈추는데 

엔터쳐주고 필요한거 써주면 된다. 아래참조

3348: remote -> za.co.absa.hyperdrive:component-archetype_2.11 (-)
3349: remote -> za.co.absa.hyperdrive:component-archetype_2.12 (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 2098: [엔터치고]
Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
7: 1.3
8: 1.4
Choose a number: 8: [엔터치고]
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.4/maven-archetype-quickstart-1.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.4/maven-archetype-quickstart-1.4.pom (1.6 kB at 90 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-bundles/1.4/maven-archetype-bundles-1.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-bundles/1.4/maven-archetype-bundles-1.4.pom (4.5 kB at 406 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.4/maven-archetype-quickstart-1.4.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.4/maven-archetype-quickstart-1.4.jar (7.1 kB at 592 kB/s)
Define value for property 'groupId': [모르고 엔터쳐버림..]
[INFO] Using property: artifactId = realMaven
Define value for property 'version' 1.0-SNAPSHOT: : [엔터치고]
Define value for property 'package' : : [엔터쳤더니]
[WARNING] Archetype is not fully configured	  [다시해야되구영]
Define value for property 'groupId': com.first.mavenapp	// << 그룹식별자 써주공
[INFO] Using property: artifactId = realMaven
[INFO] Using property: version = 1.0-SNAPSHOT
Define value for property 'package' com.first.mavenapp: : [엔터치고]
Confirm properties configuration:
groupId: com.first.mavenapp
artifactId: realMaven
version: 1.0-SNAPSHOT
package: com.first.mavenapp
 Y: : [엔터치고]
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.first.mavenapp
[INFO] Parameter: artifactId, Value: realMaven
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.first.mavenapp
[INFO] Parameter: packageInPathFormat, Value: com/first/mavenapp
[INFO] Parameter: package, Value: com.first.mavenapp
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.first.mavenapp
[INFO] Parameter: artifactId, Value: realMaven
[INFO] Project created from Archetype in dir: /home/gkrud/mavenTestProject/realMaven
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:54 min
[INFO] Finished at: 2024-01-16T14:18:30+09:00
[INFO] ------------------------------------------------------------------------

 

빌드 성공하면 

mavenTestProjet 폴더 하위에

realMaven이라는 폴더가 생기고

그 하위에는 

pom.xml이 생성되어 있다. 

 

 

그리고 

mavenTestProject/realMaven/src/main/java/com/first/mavenapp 경로로 들어가보면

App.java 라는 파일이 생성되어 있는데

이 파일은 main 자바 파일이다. 

 

컴파일 하깅

mvn compile

하면

빌드를 한다

길게

좌랄라랄ㄹㄹ라라락 나온다.

BUILD SUCCESS 나오면 된다.ㅇ

컴파일 후 보면

target폴더가 생성되어 있다.

target 폴더 내에는 저런 것들이 있다.

그리고 mavenTestProject/realMaven/target/calsses/com/first/mavenapp 타고 들어가 보면

App.class 파일이 있다. 

 

mavenTestProject/realMaven 경로에서 (pom.xml이 있는 경로)

mvn package

하면

좌라라락 다운로드 하면서 빌드를 하고

요렇게 파일들이 추가되어 있다.

저 jar파일 안에 class 파일들이 들어있다고 한다. 

 

실행해보기

해주면 뿅 나온다. 

왜 Hello World!가 나오냐면

App.java가 그리 되어있기 때문 ㅎㅎ

 

 


com.first.mavenapp 패키지에

LinuxSelenium.java 파일 옮기고.

 

pom.xml 에 이 두개 추가하고

 

  <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>3.2.1</version>
    </dependency>

 

mavenTestProject/realMaven 경로에서

mvn install

빌드.

 

그러면 target폴더에 생성된 jar파일로 실행

java -jar realMaven-1.0-SNAPSHOT.jar com.first.mavenapp.LinuxSelenium

을 하는건데

안댐

 

에러

no main manifest attribute, in realMaven-1.0-SNAPSHOT.jar

.........후...


알고보니 일단 자바 환경변수 설정을 안햇슴

https://velog.io/@osk3856/UbuntuJDK11installation

 

Ubuntu JAVA 설치 및 환경변수 설정

Ubuntu jdk11 설치 및 환경변수를 설정해 보았다

velog.io

환경변수 설정 하고


다시하면 App는 실행 되는데

내가 만든 LinuxSelenium은 실행이 안됨 ㅡ3ㅡ

 

 

 

 

 


 

 

참조 사이트

https://qteveryday.tistory.com/98

 

우분투 - 메이븐 총정리 - maven을 알아보자

🔅메이븐이란? 메이븐은 프로젝트를 생성도 해주고, 라이브러리 설정, 코드작업, 컴파일, 테스트, 패키지 만들기, 인스톨, 배포, 레포팅을 해주는 빌드 소프트웨어이다. 빌드란 개발자가 작성한

qteveryday.tistory.com

https://velog.io/@och5351/Maven-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1

 

Maven 프로젝트 생성

groupId - 프로젝트 속하는 그룹 식별 값. 회사, 본부, 또는 단체를 의미하는 값이 오며, 패키지 형식으로 계층을 표현한다. 위에서는 net.madvirus를 groupId로 이용하였다.artifactId - 프로젝트 결과물의

velog.io