Spring Boot Maven Plugin - переименовать оригинальный JAR

Когда я создаю свой проект с помощью плагина Spring Boot Maven, я получаю два файла jar: foo.jar и foo.jar.original. Я понимаю, что могу использовать fileName для вызова переупакованного файла как-то иначе, но я хочу переименовать исходный файл. Я хочу foo.jar (перепакованный) и original-foo.jar (оригинальный), потому что я хочу, чтобы было ясно, какой из них является оригинальным, но мне нужно, чтобы файл был .jar для работы с инструментом конвейера. Как я могу это сделать?


person Barry McNamara    schedule 14.08.2018    source источник


Ответы (2)


Суффикс .original жестко запрограммирован в org.springframework.boot.loader.tools.Repackager.getBackupFile(), поэтому вы не сможете заменить его original-, если вы не разветвляете свою собственную версию плагина Spring Boot Maven:

/**
 * Return the {@link File} to use to backup the original source.
 * @return the file to use to backup the original source
 */
public final File getBackupFile() {
    return new File(this.source.getParentFile(), this.source.getName() + ".original");
}
person Karol Dowbecki    schedule 15.08.2018
comment
Я боялся, что это может быть так. В итоге я использовал finalName, чтобы иметь переупакованный файл с именем standalone-foo.jar, который оставил исходный как foo.jar - это делает различие ясным, сохраняя типы файлов, которые я хотел. - person Barry McNamara; 16.08.2018

Привет, вы можете использовать другой плагин maven для достижения этого, я использую maven-antrun-plugin

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <configuration>
                        <target>
                            <copy file="${project.build.directory}/${project.build.finalName}.jar.original"
                                  tofile="${project.build.directory}/${project.build.finalName}.bazzz" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Затем он скопирует исходный файл в другое имя

-rw-r--r--   1 ming  staff     140317 May 15 16:40 test-0.0.1-SNAPSHOT.bazzz
-rw-r--r--   1 ming  staff     140317 May 15 16:40 test-0.0.1-SNAPSHOT.jar.original
person sendon1982    schedule 15.05.2020