Измените имя файла зависимости перед загрузкой в ​​удаленный репозиторий - PullRequest
1 голос
/ 28 октября 2011

Вот история моей проблемы:

Я хочу загрузить jar с помощью pom.xml с помощью команды deploy, но я хочу, чтобы загруженный jar не содержал в этом имени номер версии.

Например, pom.xml для jogl.all.jar:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl.all</artifactId>
<version>2.0-b526-20111018</version>
<packaging>jar</packaging> 
<name>Jogl</name>
</project>

Мой развернуть cmd:

mvn deploy:deploy-file  
  -Durl=http://maven.iscpif.fr/thirdparty/ 
  -DrepositoryId=maven.iscpif.fr 
  -DgroupId=org.jogamp.jogl 
  -DartifactId=jogl.all 
  -Dversion=2.0-b526-20111018 
  -Dfile=./jogl.all.jar 
  -DpomFile=./pom-jogl-all.xml 
  -Dpackaging=jar

Развернутая банка равна здесь: jogl.all-2.0-b526-2011108.jar

Но когда я вызываю эту зависимость, я хочу, чтобы maven попытался скачать банку с таким именем: jogl.all.jar

Спасибо за ваш совет:)

SR.

1 Ответ

3 голосов
/ 28 октября 2011

Вы не можете изменить имя артефакта, если вы развертываете его в удаленном хранилище.Это сломало бы то, как работает Maven.

См. Также комментарий @ Pascal в этой связанной SO-дискуссии .

Вы можете изменить имя зависимых jar-файлов, в то же время включив их в дистрибутив, используя плагин сборки maven, используя свойство outputFileNameMapping.Примерно так:

   <dependencySets>
        <dependencySet>
            <outputDirectory>/webapps/myapp/WEB-INF/lib</outputDirectory>
            <excludes>
                <exclude>${project.groupId}:${project.artifactId}</exclude>
            </excludes>
            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
        </dependencySet>
    </dependencySets>
...