2016-06-29 3 views
0

Я хотел бы задокументировать в затененной банке, какие артефакты maven на самом деле попадают в эту затененную банку.Как вставить информацию об артефакте в maven shaded jar

Все пакеты объединяются, и это затрудняет тренировку точно, какие артефакты вошли в нее, просто глядя на банку.

Я предполагаю, что идеальным местом для этой информации будет файл манифеста, но он может быть просто в текстовом файле.

В идеале я хочу видеть groupId, artifactId и версию.

Возможно ли это с помощью плагина maven shade?

Заранее спасибо, Фил.

+0

Вряд ли вы можете получить такую ​​информацию от всего, кроме самого плагина. Поэтому я рассмотрю его [свойства конфигурации] (https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html). Например, есть опция 'createDependencyReducedPom', которая может быть объединена с' keepDependenciesWithProvidedScope' для получения измененного pom.xml с включенными зависимостями, отмеченными областью 'provided'. Однако я не вижу возможности отличать их от исходных зависимостей. –

ответ

0

Вы можете сделать это с помощью Maven, следующие шаги, чтобы следовать:

1- Создать под SRC/основные/ресурсы файл которым будет содержать информацию, information.txt, например, следующего содержания :

version=${project.version} 
artifactId=${project.artifactId} 
groupId=${project.groupId} 

2- Активировать Maven filtring

<project> 
     ... 
     <build> 
     ... 
     <resources> 
      <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
      <includes> 
       <include>**/information.txt</include> 
      </includes> 
      </resource> 
      ... 
     </resources> 
     ... 
     </build> 
     ... 
    </project> 

3- Постройте свой проект. В файле будет содержаться информация, которая вам нужна.

More information about the plugin.

+0

Это позволяет печатать любое свойство в текстовом файле и включать его в последнюю банку. Но это не объясняет, как узнать, какие артефакты стали частью затененной банки, когда плагин с теней может быть настроен разными способами, чтобы включить только некоторые артефакты или даже переместить материал. –

0

При создании баночки с Maven, по умолчанию вы получите следующие данные: /META-INF/maven/${groupId}/${artifactId}/pom.properties и /META-INF/maven/${groupId}/${artifactId}/pom.xml. При затенении все эти файлы также попадают в затененную банку.

Смежные вопросы