Как установить / изменить имя для конкретной зависимости, определенной в pom.xml для проекта Java? - PullRequest
0 голосов
/ 19 сентября 2019

В данный момент имя установлено на «имя + версия».Мне нужно исключить версию из окончательного названия.Например, для

<dependency>
  <groupId>group-a</groupId>
  <artifactId>artifact-b</artifactId>
  <version>1.0</version>
</dependency>

я вижу, как в моей сборке генерируется artifact-b-1.0.jar, но я хочу, чтобы он назывался artifact-b.jar, поэтому мне нужно изменить все сценарии, используябанка каждый раз, когда меняется версия.

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Во время сборки ваш фляга генерируется до target.Вы можете изменить имя для цели, используя параметр finalName.Если вы используете install, артефакт устанавливается в локальный репозиторий (вы не можете влиять на имя в локальном репозитории).При развертывании артефакт развертывается в удаленном репозитории (там вы также не можете , а не влиять на имя).

0 голосов
/ 20 сентября 2019

Вы можете использовать install-file goal из Установочного плагина Maven :

    <groupId>group-a</groupId>
    <artifactId>artifact-b</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <version>3.0.0-M1</version>
                <executions>
                    <execution>
                        <id>install-file-${project.artifactId}</id>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                        <phase>install</phase>
                        <configuration>
                            <file>${project.build.directory}/${project.build.finalName}.jar</file>
                            <artifactId>artifact</artifactId>
                            <version>b</version>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

mvn install output:

[INFO] ...
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ so58011949 ---
[INFO] Building jar: ...\target\so58011949-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ artifact-b ---
[INFO] Installing ...\target\artifact-b-0.0.1-SNAPSHOT.jar
       to ...\.m2\repository\group-a\artifact-b\0.0.1-SNAPSHOT\artifact-b-0.0.1-SNAPSHOT.jar
[INFO] Installing ...\pom.xml
       to ...\.m2\repository\group-a\artifact-b\0.0.1-SNAPSHOT\artifact-b-0.0.1-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-install-plugin:3.0.0-M1:install-file (install-file-artifact-b) @ artifact-b ---
[INFO] Installing ...\target\artifact-b-0.0.1-SNAPSHOT.jar
       to ...\.m2\repository\group-a\artifact\b\artifact-b.jar
[INFO] Installing ...\AppData\Local\Temp\artifact-b-0.0.1-SNAPSHOT7551062015093608214.pom
       to ...\.m2\repository\group-a\artifact\b\artifact-b.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] ...

Локальный репозиторий:

|
+- group-a
|  +- artifact
|     +- b
|        +- artifact-b.jar
|        +- artifact-b.pom
|  +- artifact-b
|     +- 0.0.1-SNAPSHOT
|        +- artifact-b-0.0.1-SNAPSHOT.jar
|        +- artifact-b-0.0.1-SNAPSHOT.pom
|
0 голосов
/ 19 сентября 2019

Вы можете сделать так:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>package.class.main.Method</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <finalName>${project.artifactId}</finalName>
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
        </plugin>
    </plugins>
</build>
...