system
범위 종속성을 POM에 추가하려고합니다. 트릭은 내가 systemPath
이 없다는 것입니다. 대신, 경로로 사용할 수있는 속성이 들어있는 속성 파일에 대한 경로가 있습니다.속성에서 Maven 종속성을 동적으로 추가합니다.
이 문제를 해결하기 위해 properties-maven-plugin을 사용해 보았습니다. 그러나 플러그인을 실행하기 전에 시스템 종속성이 해결되어서 곧 정의하려고하는 속성을 곧 사용할 수없는 것으로 보입니다.
여기 내 POM의 절입니다 :
<profiles>
<profile>
<id>dylink</id>
<dependencies>
<dependency>
<artifactId>outside-lib</artifactId>
<groupId>com.foo</groupId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${outsidelib.location}/outside-lib.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>C:\path\to\file.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
그리고 mvn -P dylink compile
같은 것을 실행하고 절대 경로 아니기 때문에 내 systemPath
이 무효라고 말했다 얻는다. 이 속성에는 절대 경로가 포함되어 있습니다.
또는 다른 방법이 있습니까? 시스템 범위 종속성의 위치를 호스트 시스템에 쿼리 할 수 있어야합니다. POM으로 경로를 하드 코딩하는 것은 효과가 없습니다.
결국 '깔끔한'솔루션은 생산자에게 자신의 의존성을 공개적으로 접근 할 수있는 maven 저장소에 넣고 pom.xml에 저장소를 추가하도록 요청하는 것입니다. Maven은 당신의 의존성을 검색 할 것입니다. Sonatype.org는 이러한 서비스를 제공합니다 ... – JVerstry