Maven : 소스 및 종속성으로 프로젝트를 내보내는 방법
-
20-09-2019 - |
문제
저장소와 물건에 의존성이있는 Maven 프로젝트가 있습니다. Maven이 기계에서 실행하지 않고도 IDE에서 성공적으로 열 수 있도록 모든 종속성으로 소스를 "내보내기"하고 싶습니다.
프로젝트를 전쟁 파일로 포장 할 때는 모든 종속성이 포장되어 있습니다.
그래서 나는 그 모든 의존성과 내 출처를 한 곳에 모으고 싶습니다.이 모든 라이브러리가 탐지 된 모든 라이브러리 (Eclipse 또는 Idea)로 열 수 있습니까?
해결책
목표로 Maven-Dependency-Plugin을 사용해보십시오 카피 의존성
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
추신.
Maven과 IDE 통합을 알고 있습니까 ( 식 체육)? Maven은 특정 IDE에 대한 프로젝트를 생성하고 모든 종속 항아리를 변수로 포함시킬 수 있으므로 (로컬 저장소 에서이 항아리를 가리키는) 사본 부근을 사용할 필요가 없습니다.
다른 팁
실제로 소스가있는 번들을 만들 수있는 것은 없습니다. 그리고 상자 밖에 종속성. 이를 위해서는 일부 플러그인의 조합을 사용해야합니다.
종속성의 경우 Maven 2 종속성 플러그인 그리고 그것 copy-dependencies
Cetnar가 지적한대로 도움이 될 것입니다.
출처의 경우 필요할 수 있습니다 Maven 소스 플러그인 그리고 그것 source:aggregate
목표 (또는 아마도 Maven 어셈블리 플러그인 그리고 사전 정의 된 src
설명자이지만 source:aggregate
멀티 모듈 빌드에 편리합니다).
모든 것을 함께 묶기 위해 (그리고 아마도 포장을 풀었을 것입니다) 나는 Maven 어셈블리 플러그인.
출처와의 전쟁
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${build.sourceDirectory}</directory>
<targetPath>src</targetPath>
</resource>
</webResources>
</configuration>
</plugin>