#maven
Вопрос:
Я пытаюсь вставить значение версии реализации в файл манифеста, но не текущего проекта, как вы можете видеть в моем коде прямо сейчас ( <Implementation-Version>${project.version}</Implementation-Version>)
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>ispf-linux</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>desktop.linux.main.Main</mainClass>
<manifestEntries>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
, но это версия зависимости. Как это сделать?
<dependency>
<groupId>registry</groupId>
<artifactId>desktop.common</artifactId>
<version>1.0.0</version>
</dependency>
Ответ №1:
Я бы предложил объявить свойство для версии:
<properties>
<desktop.common.version>1.0.0</desktop.common.version>
</properties>
Затем ссылаемся на это свойство в обоих местах. Здесь:
<dependency>
<groupId>registry</groupId>
<artifactId>desktop.common</artifactId>
<version>${desktop.common.version}</version>
</dependency>
И вот:
<manifestEntries>
<Implementation-Version>${desktop.common.version}</Implementation-Version>
</manifestEntries>
Комментарии:
1. Это полезно, но создает необходимость обновлять это свойство вручную. Я использую
versions:use-latest-releases
Maven, который обновляет все зависимости до последней версии.2. @Вортиг, я вижу. Однако этот подход к свойствам-единственное, что я знаю о возможности использования maven в этом отношении. Извините.
3. Существует также
versions:update-properties
: mojohaus.org/versions-maven-plugin/update-properties-mojo.html