【问题标题】:Change name of dependency jar before upload on remote repository在上传到远程存储库之前更改依赖项 jar 的名称
【发布时间】:2011-12-17 04:26:34
【问题描述】:

这里,我的问题的故事:

我想用部署命令上传一个带有 pom.xml 的 jar,但我希望上传的 jar 不包含此名称中的版本号。

例如,jogl.all.jar 的 pom.xml :

<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>

我的部署命令:

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

这里部署的 jar 相等:jogl.all-2.0-b526-2011108.jar

但是,当我调用此依赖项时,我希望 maven 尝试下载一个具有此名称的 jar:jogl.all.jar

感谢您的建议:)

SR。

【问题讨论】:

    标签: deployment maven-2 build jar


    【解决方案1】:

    如果要部署到远程存储库,则无法更改工件名称。这将打破 Maven 的工作方式。

    请参阅@Pascal 在this related SO discussion 中的comment

    您可以使用属性outputFileNameMapping 来更改依赖jar 的名称,同时使用maven 程序集插件将它们包含在分发中。类似于以下内容:

       <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>
    

    【讨论】:

    • 好的,谢谢,您知道如何在使用程序集插件将它们添加到我的 jar 之前更改 jar 的名称吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2011-12-27
    相关资源
    最近更新 更多