【问题标题】:Build Java project with tar one directory deeper in repository using Maven-assembly-plugin使用 Maven-assembly-plugin 在存储库更深的一个目录中构建 Java 项目
【发布时间】:2025-12-13 17:25:01
【问题描述】:

将我的 Java Maven 构建作为 Maven 安装运行,并使用 Maven 程序集插件 (maven-assembly-plugin),我可以将未构建项目中的一些文件放入我喜欢的任何格式(dir、zip、tar) - a焦油在我的情况下。因此,当我运行 Maven install 并查看我的存储库时,我得到了预期的 war 文件和使用 Maven-assembly-plugin 创建的 tar。

所以我构建的项目有以下内容:

  • repository/project.war
  • repository/files.tar

如何将 files.tar 文件移动到更深的一个目录,以便我的结构是

  • repository/project.war
  • repository/anotherDirectory/files.tar?

更多信息

这是我 POM 中的插件:

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <descriptors>
            <descriptor>src/assembly/repository.xml</descriptor>
          </descriptors>
        </configuration>
      </plugin>
   [...]
</project>

这里是 repository.xml 文件:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
  <id>repository</id>
  <formats>
    <format>tar</format>
  </formats>
<includeBaseDirectory>false</includeBaseDirectory> 
   <fileSets>
         <fileSet>  
           <directory>${project.basedir}/files</directory>
            <outputDirectory>/</outputDirectory>
             <filtered>true</filtered>
            <includes>
                <include>**/*.*</include> 
            </includes>           
        </fileSet>         
    </fileSets>  
</assembly>

(可能的解决方案是让另一个程序集 xml 文件找到我的组装 files.tar 并将其放入 dir 类型?我会在哪个目录中找到我的 files.tar?)

【问题讨论】:

    标签: java maven build repository maven-assembly-plugin


    【解决方案1】:

    如果“repository”表示本地存储库或远程存储库,则不能这样做。本地存储库的格式是固定的。目录和文件名是根据 Maven 坐标(groupId、artifactId、版本、分类器、扩展名)计算得出的。

    【讨论】:

      最近更新 更多