다른 환경에 있던 스프링 프로젝트를

내 개발환경으로 끌어들이니 메이븐 pom.xml에서 Missing artifact 에러가 발생했다..

한참 이유를 찾아 다녔는데

<type> 엘리먼트에 대한 속성을 지정해주지 않았기 때문이었다.

메이븐을 통해 라이브러리 의존성을 지정해 줄 때,

경우에 따라 어떤 메이븐 라이브러리는 pom에 정의된 dependency를 받아오게끔 구성되어 있다..

이런 라이브러리를 적용할때 <type>pom</type>을 빼먹으면

jar를 찾을 수 없어서 에러가 발생한다.


예시)

<!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-dist -->

<dependency>

    <groupId>com.github.oshi</groupId>

    <artifactId>oshi-dist</artifactId>

    <version>3.4.0</version>

    <type>pom</type>

</dependency>


참고)

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

http://knight76.tistory.com/entry/maven-type-pom


몇장없긴한데

정말 필요하신분들에게 드립니다.

티스토리 초대장 필요하신분은 간단하게 이용목적이랑 댓글로 달아주세요~

'일상' 카테고리의 다른 글

주니어 개발자!! 카카오 면접 후기  (2) 2017.04.25

crontab은 일정 시간동안 정해놓은 패턴을 반복하여 프로그램을 제어 할 수 있는 리눅스의 기능이다.

이를 활용하면, 일정시간마다 실행되어야하는 프로그램들을 간편하게 처리 및 관리해 줄 수 있다.

(마치 윈도우 기반 서버의 작업 스케줄러와 유사하다고 보면된다..)

프로젝트 중, 일정시간마다 php를 실행시켜줘야하는 기능을 구현해야 했는데

이를 통해 빠르게 해결 할 수 있었다.



1. 우선 php엔진이 어느 위치에 존재하는지 확인한다.

# whereis php 


2. crontab을 편집하기 위한 명령어 입력한다. (vi로 동작함)

# crontab -e 


3. 2.를 통해 오픈된 문서에 crontab 룰에 맞춰서 명령어를 작성해준다.

10 * * * * /usr/bin/php -q /.../process.php

맨 앞의 5개 파라미터(* * * * *)은 각각 분, 시, 일, 월, 요일(각 파라미터별 입력범위 : 00~59, 00~23, 00~31, 01~12, 0~7)을 의미한다.

즉 상기 명령어는 각 시간별 10분에 실행하라는 뜻이다.

하지만, 시간별 10분이 아닌 "10분 마다" 실행을 하려면

 */10 * * * *를 입력한다.

그 다음 파라메터는 php엔진의 위치, -q는 실행하겠다는 옵션을 의미한다.

그 다음에 입력된 경로는 실행할 php파일경로다.


4. 기타 명령어들

- crontab 재시작

# /etc/rc.d/init.d/crond restart


- 현재 crontab 리스트 보기

# crontab -l 


- 로그 조회

# tail /var/log/cron


- 작업 종료(사용 시, crontab 명령어들이 사라진다)

# crontab -r 

+ Recent posts