내 Maven 패키지가 두 가지 컨텍스트로 실행되도록 허용 할 수 있어야합니다.Maven Jar에는 두 개의 실행 컨텍스트가 필요합니다.
사용자는 모든 이적을 다운로드하는 사용자가 필요가 myjar
을 myjar.jar -jar 자바를 실행할 때 표시되는 AWT 대화 상자에서 라이센스 키를 생성하는 명령 줄에서 항아리를 실행해야 클라이언트 프로젝트가 myjar를 의존성으로 참조 할 때 의존성 ("일반적인"방법으로).
시나리오 1에서는 AWT 대화 상자가 튀어 나오도록 AWT 양식 jar을 패키지화해야합니다.
시나리오 2에서는 클라이언트 프로젝트 빌드시 다른 모든 종속성을 다운로드해야합니다.
가능한 한 작게 유지하려면 어떻게 포장해야합니까?
jar-plugin, shade-plugin 및 assembly-plugin을 별 도움없이 사용해 보았습니다.
JAR-PLUGIN :
lib 디렉토리/디렉토리에 양식-1.2.1.jar를 배치하고 myjar.jar이 명령 줄
에로드되지 않습니다 자바 -jar 때문에 클래스 패스에 추가하는 것은 작동하지 않습니다
SHADE-PLUGIN :
인터넷을 다운로드하십시오. 일부 종속성을 제외하는 방법은 무엇입니까?
조립품 :
인터넷을 다운로드하십시오. 일부 종속성을 제외하는 방법은 무엇입니까?
(시나리오 1의 경우) forms-1.2.1.jar의 전이 종속성을 패키지화하는 방법은 있지만 패키징 시간에는 다른 모든 종속성을 제외하므로 클라이언트 프로젝트 빌드 타임 (시나리오 2의 경우)에서 다운로드됩니다.
jar-plugin 또는 assembly-plugin을 사용하여이 작업을 수행 할 수 있습니까? 모든 종속성을 포함하는 jar 파일을 생성하고 명령 줄에서 호출하는 것을 가능하게하지만 제대로 작동 얻을 것이다
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<!-- NOTE: We don't need a groupId specification because the group is
org.apache.maven.plugins ...which is assumed by default.
-->
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
[...]
</project>
당신이 보충 부분을 필요가 있다고 생각 무엇
2 개의 사용 사례가 없습니다. 당신은 항아리가 자신의 의존성을 다운로드 싶어? 내부에 Maven 내장 :) – talex
유스 케이스 2는 POM 파일로 이슈가 적절하게 배포되었다고 가정하면 Maven에서 자동으로 처리합니다. 사용자가 이슈를 종속물로 참조하면 Maven은 제공된 POM을 사용하여 해결할 종속성을 결정합니다. "jar-with-dependencies"는 누군가가 Maven POM에서 참조 할 때 얻을 수있는 아티팩트가 아닙니다. 그들은 정상적인 것을 얻을 것이고, 어떤 의존성도 그들의 지역 repo를 사용하여 해결 될 것입니다. "one-jar"메소드는 Maven이 아닌 방식으로 배포하기 쉽도록 순수하게 사용됩니다. –
@ ryan-j 나는 maven을 통해 maven을 배포하려고한다. 따라서 원 - 항아리가 잘못된 접근법임을 분명히 해 주셔서 감사합니다. 위의 수정 내용을 참조하십시오. –