Как ссылаться на версию зависимости в Maven?

#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