Maven Получить Определенные Классы
Есть ли способ, которым я могу заставить maven включать только определенные .файлы классов при импорте зависимостей в uber jar (shade). Я ищу способ, чтобы файлы, содержащие "клиент" в своем имени, были извлечены из банок зависимостей и добавлены в последнюю банку. Любая помощь была бы чудесной.
2 ответа:
Вы должны иметь возможность использовать Maven-dependency-plugin следующим образом:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>unpack</id> <phase>package</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId><!--dependency groupId--></groupId> <artifactId><!--dependency artifactId--></artifactId> <version><!--depedency version--></version> <includes>**/*Client*.java</includes> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build>
Если вы используете плагин Maven Shade, Вы можете использовать фильтр , который позволит вам фильтровать, какие артефакты будут затенены, а также какие классы исключить или включить.
Вот пример, который они предоставляют:
<filters> <filter> <artifact>junit:junit</artifact> <includes> <include>org/junit/**</include> </includes> <excludes> <exclude>org/junit/experimental/**</exclude> </excludes> </filter> </filters>