【问题标题】:Copy External Folder to Target While Building Jar(Using Maven)构建 Jar 时将外部文件夹复制到目标(使用 Maven)
【发布时间】:2017-03-29 04:12:40
【问题描述】:

如果我的问题重复,首先真诚道歉,我尝试搜索但找不到与我的问题相关的答案

问题:我正在使用 Maven“maven-shade-plugin”从我的项目中创建一个 Fat jar,现在我还有另一个 Config 文件夹(有一些 .dll、properties、.init 等文件),我我指的是项目。

现在我想要的是,不知何故,在创建 jar 时(最好是在 Maven 构建时),我的“config”文件夹也被平行复制到 jar 中。

使用:Maven 3.3.9

当前项目结构:

项目父文件夹 --.git - 。主意 --src --配置 --pom.xml

期望的输出

目标文件夹 --ProjectParentFolder.jar --配置

注意**如果这需要将配置文件夹复制到某个 src 文件夹中,我可以这样做,但是在构建之后我希望它在 jar 之外(最好与 jar 平行)。

请告知,因为我也必须在 TeamCity/uDeploy 中自动执行此过程。

【问题讨论】:

    标签: java jar build maven-3 packaging


    【解决方案1】:

    尝试编写一个 shell 脚本,它将 jar 从源文件夹复制到需要它的文件夹。

    您可以在文本文件中定义所有必需的 jar。 脚本将从文件中读取所需的 jar 并将其复制到目标文件夹。

    【讨论】:

    • 感谢您的回答,但不确定我们是否可以使用 Shell 从 GIT 结帐,而且结帐一个地方然后使用 shell 脚本复制到目标有点混乱,因为我们需要维护服务器列表。
    • 只要提到包含 jars 的父文件夹。如果 jar 在子目录中或更深入,它将起作用。不确定 git
    【解决方案2】:

    maven-shade-plugin 主要用于打包 uber-jar。我建议改用 maven-assembly-plugin 。您可以在 assembly.xml 中任意位置配置配置文件夹(使用 fileSet 元素)。例如:

       <fileSets>
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>/Config</outputDirectory>
            <includes>
                <include>...</include>
            </includes>
        </fileSet>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 2019-01-09
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多