Я разработал java-библиотеку, одна часть которой является серверным приложением, а другая часть - клиентским API для подключения к серверу.
Я пытаюсь создать jar-файл, который может быть выполнен для запуска сервера.но в то же время мои классы API остаются открытыми.
Я использовал maven shade для достижения своей цели, но не смог найти, как настроить его для отправки своих пакетов как в корень jar, так и в каталог BOOT-INF.
Нев любом случае, это правильный окончательный макет ...
Я использую Spring и Spring-boot для серверной части приложения.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
<resource>META-INF/spring.factories</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>${application.group}.SimProxy</Main-Class>
</manifestEntries>
</transformer>
</transformers>
<artifactSet>
<excludes>
<exclude>${dependency.spring-test.group}:spring-test</exclude>
<exclude>${dependency.hamcrest-library.group}:hamcrest-library</exclude>
<exclude>${dependency.junit.group}:junit</exclude>
<exclude>${dependency.vertx.group}:vertx-core</exclude>
<exclude>${dependency.vertx-junit5.group}:vertx-junit5</exclude>
<exclude>${dependency.mockito-core.group}:mockito-core</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
Как я уже сказал, я не уверен в окончательном макете jar, но мои другие пакеты библиотеки скомпилированной области видны в корне jar.
Я ожидаю, что пакеты API также будут установлены в корне jar для использования клиентского API в других проектах.
Спасибо за любую помощь в этом.