首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能重命名一个带有依赖项的maven jar?

有没有可能重命名一个带有依赖项的maven jar?
EN

Stack Overflow用户
提问于 2009-08-26 14:12:31
回答 5查看 87.7K关注 0票数 154

我目前正在使用带有依赖项的jar程序集来创建这样的jar。但是,我的jar的名称有点长。

由于这个jar是由AS400上的RPG程序使用的,所以我想缩短它,以使这些开发人员的工作更轻松一些。但是,除了手动之外,我还没有找到将jar从通常的project-name-version-classifier-jar-with-dependencies.jar重命名的方法。我想要像project-name-version-classifier-full.jar这样的东西

有没有办法做到这一点,而不是简单地复制具有依赖关系的jar程序集描述符并调用它?

此外,我希望继续将没有组装类路径的jar存储在存储库中。

我需要两件藏品。用我的分类器保存构建所针对的区域的jar。包含所有依赖项的jar,其中还包括区域。

project-name-version-region-full.jarproject-name-version-region.jar应该存储在存储库中。在第一个例子中,分类器是region-full,在第二个例子中,分类器是region。后者正在发挥作用。

EN

回答 5

Stack Overflow用户

发布于 2013-01-20 02:19:53

我想我已经找到了一种方法,可以直接在pom中配置它,而不需要单独的jar-assembly.xml y.xml。

它基本上与Rich的答案相同,只是finalName是用artifactId和版本指定的。

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <finalName>${project.artifactId}-${project.version}-full</finalName>
        <appendAssemblyId>false</appendAssemblyId>
        <archive>
            <manifest>
                <mainClass>com.mycompany.MyMainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-my-jar-with-dependenciess</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
票数 40
EN

Stack Overflow用户

发布于 2011-03-08 14:10:49

多亏了这里的帖子和对maven docs的深入研究,我已经为一个通用的一次性重新打包的可执行jar程序集提供了以下配置,并使用了一个自定义名称。

在pom.xml中:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
            <id>exe</id>
            <phase>package</phase>
            <goals><goal>single</goal></goals>
            <configuration>
                <finalName>MyJarName</finalName>
                <attach>false</attach>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
                <archive>
                    <manifest>
                        <mainClass>karlthepagain.MyMain</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </execution>
    </executions>
</plugin>

在assembly.xml中:

<assembly>
    <id>exe</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <unpack>true</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

这将生成MyJarName.jar,并将其所有依赖项重新打包到相同的jar和指定的Main-Class: karlthepagain.MyMain中。

票数 8
EN

Stack Overflow用户

发布于 2019-07-01 18:49:51

也可以使用${project.build.finalName}作为最终名称来覆盖原始jar文件:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
   <executions>
      <execution>
          <phase>package</phase>
          <goals>
             <goal>single</goal>
          </goals>
      </execution>
   </executions>
   <configuration>
     <descriptorRefs>
       <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
     <finalName>${project.build.finalName}</finalName>
     <appendAssemblyId>false</appendAssemblyId>
   </configuration>
 </plugin>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1334999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档