Это не «Maven Way», чтобы иметь артефакт с различным контентом в зависимости от того, где он хранится. Maven ожидает, что artifact-1.0.jar
будет точно таким же в удаленном репозитории и в любых локальных репозиториях.
Возможно, проект мог создать классическую банку рядом с настоящей банкой. Классифицированная банка будет включать logback.xml.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<!-- default-jar is the ID assigned to the jar:jar execution included automatically by
Maven. -->
<execution>
<id>default-jar</id>
<configuration>
<!-- not exactly sure of the exact syntax for excludes in the jar plugin -->
<excludes>
<exclude>logback.xml</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>jar-with-logging</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>logging</classifier> <!-- or whatever -->
</configuration>
</execution>
</executions>
Это создаст два артефакта, артефакт 1.0.jar и артефакт-1,0-logging.jar. Оба артефакта попадут в оба репозитория. Если вы не хотите, чтобы версия ведения журнала была прикреплена (терминология Maven для публикации в репозитории), исследуйте с помощью maven-assembly-plugin
, который может создавать пакеты в различных форматах без их присоединения.
Вы также можете переместить logback.xml в отдельный проект, поместить его отдельно и добавить его в путь к классам только при запуске jar из локального скрипта.
Не могли бы вы объяснить пример использования? – user944849
У редактирования есть мой случай использования – Hank
Можете ли вы поместить файл logback.xml в src/test/resources? Плагины, такие как plugty-maven-plugin, могут быть настроены так, чтобы включать тестовый путь класса при запуске. – user944849