Я пытаюсь добавить зависимую область привязки 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