Я использую плагин maven-assembly, чтобы создать банку моего приложения, включая его зависимости следующим образом:
<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 и файл сборки всякий раз, когда эта банка переименовывается, если вообще когда-либо. Кроме того, это выглядит просто неправильно.
Я пробовал с <scope>runtime</scope>
в dependencySets
и <include>sourceforge.jchart2d:jchart2d</include>
без везения.
Итак, как вы включаете банку system
в свой файл сборки в maven 2?
Спасибо большое