Maven 빌드 시 [ERROR] COMPILATION ERROR : (패키지명) does not exist가 나오는 경우가 있다.

 

이는 해당 소스에서 특정 라이브러리를 참조하지 못해서 나오는 경우인데

 

즉, Maven에는 없는 자체 jar 파일 등 추가를 해야될 필요가 있을 때 사용하는 방법이다.

 

방법은 다음과 같다.

 

1. pom.xml에 필요한 라이브러리 내용을 추가한다.

<id>, <name> 은 원하는 명칭으로 지정

<url>file://${project.basedir}/libs<url>은 프로젝트 내의 추가할 라이브러리가 있는 임의폴다의 최상위 경로를 지정한다.

 

libs라는 디렉토리를 프로젝트 내에 바로 생성하였다.

pom.xml의 <url>file://${project.basedir}/"디렉토리명"<url>

"디렉토리명" 과 같은 이름으로 생성하면 된다.

 

2. pom.xml에 다음과 같이 jar 내용을 추가한다.

 

<groupid>, <artifactid>, <version>을 임의로 지정한다.

이제 libs 폴더 안에 다음과 같이 폴더를 생성한다. 

 

 

 

pom.xml에 지정한 명칭을 사용하여 <groupid>/<artifactid>/<version> 구조로 디렉토리를 생성

그리고 해당 jar를 넣는다.

jar의 이름은 <artifactid>-<version>.jar 라 지정한다.

 

이때 주의해야할 것은 버전명의 범위인데,

0 부터 0.0.0 까지이다. 다만 범위가 더 커져야 할 경우 0.0.0-0-0 까지 '-' 으로 지정 가능하다.

 

Jar란 Java archive의 약자로 자바 클래스 파일과, 그 클래스들이 이용하는 리소스 및 META 데이터를 하나의 파일로 모아서 ... 음 그냥 자바프로젝트를 실행가능하게 패키징했다 라고만 알아두자........엌

 

먼저 흔히들 사용하는 Eclipse나 IntelliJ를 이용하여 Jar로 빌드해보자

필자는 Eclipse를 사용했다.

 

먼저 간단한 자바 프로젝트를 만들어보자.

 

 

com.jwj.sample 패키지 안에 있는 RunMain 이라는 클래스를 생성하고,

 

 

정상적으로 실행이 되는지 확인한다.

 

프로젝트 생성이 완료가 되었으니, 해당 프로젝트를 Jar로 만들어보자.

 





 

위의 화면을 참조하여 Jar로 export 한다.

 

이젠 Jar를 실행하는 것만 남았다.

cmd를 켜서 Jar가 생성된 경로로 이동해보자.

 

이동이 번거롭다면 해당 디렉토리에서 cmd로 이동을 하면 된다.

 

그 후, Java -jar jar파일명.jar 명령어를 실행하면 해당 jar파일이 실행되는 것을 볼 수 있다.

 

간단하다.

 

하지만 해당 프로젝트에서는 Java의 기본적인 클래스만을 이용하였기 때문에,

외부 라이브러리를 사용하지 않았다.

 

다음글에서는 외부 라이브러리를 사용하는 프로젝트를 Jar로 만들어 실행하는 것에 대해 작성하겠습니다.

저번 글에서 Apache Camel을 이용을 하면 소스가 대폭 줄어든다고 했었는데 (https://nuji-94.tistory.com/12)

이번 글에선 예제를 통해 순수JAVA와 Camel의 소스를 비교해보겠다.

 

 

경로 C;/dev/logqueue/camel-exam 에 존재하는 camel-exam.txt 라는 파일의 내용을 읽어 Console창에 출력하여라. 라는 예제를 구현해보겠다.

 

먼저, 해당 경로에 camel-exam.txt 파일을 만든 후

위의 사진과 같이 파 일 읽 기 라는 내용을 넣었다.

 

 

순수 JAVA 소스로 파일의 내용을 읽는 소스는 다음과 같다.



 

-------------------------------------------------------------------------

 

다음은 Camel을 이용한 소스이다.



 

환경을 구성하기 번거롭다는 단점이 있기는 하지만

 

구현을 해놓으면 훨씬 더 간편하다. (글쓴이만의 생각 일 수도 있다ㅠ)

 

어떤가, 자네 Camel 한번 해보지 않겠는가?

 

 

 

'Framework > Apache Camel' 카테고리의 다른 글

[Apache Camel] Apache Camel 이란?  (0) 2021.01.05

Apache Camel

Apache Camel Home Page - http://camel.apache.org/

 

 

EIP(Enterprise Integration Pattern)에 기반한 open source Java framework

 

 

일반적으로 어플리케이션은 외부 I/F와 연동하기 위해 다양한 기술을 필요로 한다.

그림과 같이 일반 어플리케이션에서 외부 I/F와 연동하기 위해서는 각 I/F와 맞는 라이브러리나 API를 내장시키고, 시간을 들여 그에 맞는 기술을 익혀야 한다.

 

 

그에 반해, Apache Camel을 내장한 어플리케이션에서는 위의 그림과 같이 Camel을 통해 외부 I/F와 손쉽게 연동이 가능하다. 또한, Camel은 외부I/F와 연동을 위해 수백 가지 Component를 제공하고 있어 소스가 대폭 줄어들고, 그에 따라 개발 시간도 단축할 수 있다.

 

Apache Camel Component - http://camel.apache.org/components.html

 

Apache Camel 의 장점

1. JAVA 어플리케이션에 내장 가능한 경량 프레임워크

2. 어플리케이션의 내부에서 외부 I/F와 손쉽게 연동 할 수 있게 해줌

3. 많은 종류의 Camel-compornent를 이용하여 소스 대폭 감소 및 개발 시간 단축

 

Apache Camel 의 단점 (글쓴이 생각)

1. 초기 구축이 좀 복잡한 편이다.

2. 참고 자료 중 국내 자료가 거의 없는 편이다.(진입장벽이 높음)

 

 

감사합니다.

Putty를 이용한 Proxy 설정

 

 

프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는 기능을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

 

프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 된다. 또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 병목 현상을 방지하는 효과도 얻을 수 있게 된다.

 

쉽게 말하면, A컴퓨터와 C컴퓨터 사이에 B컴퓨터를 놓고 서로 B컴퓨터를 통해 A,C가 통신한다고 생각하면 될 것 같다.

 

설정하는 순서는 다음과 같다.

 

1) Putty 설정

 

1. Putty 왼쪽 기능에 SSH -> Tunnels 로 들어오면 오른쪽과 같은 화면이 노출 됨

2. Source port 에는 아무런 값을 넣어주고, Dynamic으로 설정 후 Add를 한다.

3. 접속을 한다. (Putty를 통해 SSH 또는 SFTP 프록시 서버를 사용하기 위해서는 반드시 서버에 로그인한 상태여야 함)

 

 

2) 인터넷 설정

 

 

1. 인터넷 옵션 -> LAN 설정을 클릭 한다.

 

2. 상단의 사진과 같이 체크하고 고급 버튼을 클릭 해 Proxy 설정에 들어간다.

 

3. 인터넷 익스플로어의 입장에서 보면 SSH Client는 서비스를 대신 해 주는 역할을 하므로 Proxy라 할 수 있으며,

   양측은 소켓을 이용하여 접근하므로 그림과 같이 구성 할 수 있다.

'공통' 카테고리의 다른 글

[공통] JSON이란?  (0) 2021.01.05
[공통] log4j 설정 및 적용하기  (0) 2021.01.05

+ Recent posts