Maven central을 통해 사용할 수있는 라이브러리가 아닌 응용 프로그램이 있다고 가정합니다. 예를 들어, 그러한 프로젝트 중 하나는 jol이고 해당 CLI 인터페이스는 in Maven central입니다.Maven 저장소에서 직접 JAR 파일 실행
내가 알 수있는 한 라이브러리와의 주요 차이점은 해당하는 JAR 파일에 적절한 main()
메서드가있는 클래스가 포함되어 있고, 선택적으로 관련 Main-Class:
헤더가 JAR 매니페스트에 포함되어 있다는 점입니다. 그러한 artifact가 프로젝트에 대한 의존성으로 사용된다면, Maven은 다른 artifact와 마찬가지로 JAR 파일을 의존성과 함께 로컬 저장소에 행복하게 다운로드 할 것입니다.
Maven 프로젝트를 설정하지 않고 Maven을 사용하여 이러한 응용 프로그램을 직접 실행할 수 있습니까?
exec:java
plugin은 종속성을 사용할 수 있도록 JVM 클래스 경로를 설정하여 로컬 프로젝트에 적합합니다. 사용자는 JAR 또는 .class
파일 위치 등에 대해 걱정할 필요가 없습니다. 불행히도, 내가 알 수 있듯이, 그것은 또한 Maven 프로젝트를 포함해야하므로 임의의 명령 행 프롬프트에서는 사용할 수 없습니다.
나는 아마 http://stackoverflow.com/questions/1776496/a-simple-command-line-to-download-a-remote-maven2-artifact-to-the-local- 다운로드 한 이슈를 실행하는 쉘 스크립트로 reposito. 또는 Maven repo에 대한 간단한 프로그램을 작성하고 이슈를 가져 와서 Maven을 모두 건너 뛸 수 있습니다. –
@DaveNewton : JAR 파일을 가져 오는 것이 유일한 문제는 아닙니다. 예를 들어,'exec : java'는 JVM classpath를 설정하여 종속성을 사용할 수있게합니다. * 그 다음은 내가 무엇을했는지 ... – thkala
jar의 의존성을 프로그래밍 방식으로 얻을 수 있고 똑같은 일을 할 수 있습니다. 어쨌든 Maven이 설치되어 있다면 최상위 의존성을 가진 ad-hoc 프로젝트를 생성하는 것이 매우 작은 POM 파일입니다. 직접 프로젝트를 만들 수없는 이유는 무엇입니까? 그게 무슨 문제 야? –