short: мне нужно отфильтровать все .java
файлы и каждую META-INF
папку из набора jar-файлов и упаковать файлы классов и ресурсы из этих jar-файлов в один jar-файл.В настоящее время я использую maven-assembly-plugin
, но попробую что-нибудь еще, если его можно легко интегрировать в процесс сборки maven.
long: я использую maven для управления различными этапами разработки своего инструмента. базовая стадия бесплатна, вторая имеет некоторые дополнительные функции, третья стадия - все функции)
Пока все работает нормально, я использую профили для добавления различных исходных каталогов в classpath и исходникиаккуратно скомпилированы в project.jar
.
- Первая проблема:
.java
источники, включенные в проект через профили, заканчиваются на project.jar
.
Затем я использую maven-assembly-plugin
для создания final.jar
, который также содержит зависимости, и в конце использую launch4j для создания исполняемого файла для Windows (текущей целевой платформы).
- Вторая проблема:различные
META-INF
части из jar зависимостей смешиваются в final.jar
, и я бы хотел, чтобы все они были пропущены.
Я искал примеры assembly.xml
с использованием тега <exclude>
, но не нашел ни одного, который использовал бы мою комбинацию dependencySet
и <exclude>*.java</exclude>
. Я даже не уверен, что могу это сделать.
Вот мой файл Assembly.xml:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
<useDefaultExcludes>true</useDefaultExcludes>
<!--<useTransitiveFiltering>true</useTransitiveFiltering>-->
<!--<useStrictFiltering>true</useStrictFiltering>-->
<excludes>
<exclude>META-INF</exclude>
<exclude>**/*.java</exclude>
<exclude>*.java</exclude>
<exclude>*:sources</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
Мои исследования на данный момент:
Я погуглил с example assembly.xml exclude java
, но не смог найти примеров, которые охватывали бы мою проблему.(Я также много гуглил в последние дни, но не сохранил все, что нашел) Я прочитал http://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html, но не смог применить эти знания к моей проблеме.