java - 使用 Maven- assembly-plugin 构建 Java 项目,并使用 tar 存储库更深的目录

标签 java maven build repository maven-assembly-plugin

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

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

  • 存储库/project.war
  • 存储库/files.tar

如何将 files.tar 文件移至更深的目录,以便我的结构为

  • 存储库/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?)

最佳答案

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

关于java - 使用 Maven- assembly-plugin 构建 Java 项目,并使用 tar 存储库更深的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006389/

相关文章:

java - 为什么 pom.xml/maven 中有排除依赖项的依赖项的选项?

java - 使用 JAR 打开文本文件而不解压它 - 请帮忙

java - 如何使用 maven 将 jar 和所有依赖项打包到新 jar 中

rest - 如何使用webpack设置rest api的基本路径

c - 为什么我的 Makefile 中的 .exe 不是从我的第二个文件中打印出来的?

java - 运行我生成的 .jar 会产生 "Can' t 在 AMD 64 位平台上加载此 .dll(机器代码=0xbd)”

java - 在解码期间从 ElementNSImpl 到自己的类型的间歇性 ClassCastException

java - 防止 Java/AMF 应用程序中的洪水/DOS 攻击

java.io.IOException : Premature EOF

java - Eclipse 将 .war 文件放在哪里?