Я использую плагин maven-assembly для создания jar моего приложения, включая следующие его зависимости:
<assembly>
<id>macosx</id>
<formats>
<format>tar.gz</format>
<format>dir</format>
</formats>
<dependencySets>
<dependencySet>
<includes>
<include>*:jar</include>
</includes>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
(я пропустил некоторые другие вещи, не связанные с вопросом)
Пока это работает нормально, потому что создает каталог lib
со всеми зависимостями. Однако недавно я добавил новую зависимость, область действия которой system
, и она не копируется в выходной каталог lib
. Я, должно быть, здесь упускаю что-то простое, поэтому я зову на помощь.
Зависимость, которую я только что добавил:
<dependency>
<groupId>sourceforge.jchart2d</groupId>
<artifactId>jchart2d</artifactId>
<version>3.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/external/jchart2d-3.1.0.jar</systemPath>
</dependency>
Единственным способом, которым я смог включить эту зависимость, было добавление следующего к элементу сборки:
<files>
<file>
<source>external/jchart2d-3.1.0.jar</source>
<outputDirectory>lib</outputDirectory>
</file>
</files>
Однако это вынуждает меня менять pom и файл сборки при каждом переименовании этого jar-файла, если вообще когда-либо. Кроме того, это кажется неправильным.
Я пробовал с <scope>runtime</scope>
в dependencySets
и <include>sourceforge.jchart2d:jchart2d</include>
без удачи.
Так как же включить system
банку с областью действия в файл сборки в maven 2?
Большое спасибо