Java 在构建Jar时将外部文件夹复制到目标(使用Maven)

Java 在构建Jar时将外部文件夹复制到目标(使用Maven),java,jar,build,maven-3,packaging,maven-assembly-plugin,Java,Jar,Build,Maven 3,Packaging,Maven Assembly Plugin,首先,诚挚的道歉如果我的问题重复,我尝试搜索,但找不到我问题的相关答案 问:我正在使用Maven“Maven shade plugin”从我的项目中创建一个胖jar,现在我还有另一个配置文件夹(有一些.dll、properties、.init等文件),这是我从项目中引用的 现在我想要的是,在创建jar时(最好是在Maven构建时),我的“config”文件夹也会与jar并行复制 使用:Maven 3.3.9 目前的项目结构: ProjectParentFolder --吉特先生 --.想法 --

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

问:我正在使用Maven“Maven shade plugin”从我的项目中创建一个胖jar,现在我还有另一个配置文件夹(有一些.dll、properties、.init等文件),这是我从项目中引用的

现在我想要的是,在创建jar时(最好是在Maven构建时),我的“config”文件夹也会与jar并行复制

使用:Maven 3.3.9

目前的项目结构:

ProjectParentFolder --吉特先生 --.想法 --src --配置 --pom.xml

期望输出

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

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


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

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

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

尝试编写一个shell脚本,将JAR从源文件夹复制到所需的文件夹

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

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

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

${project.build.directory}
/配置
...


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

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

${project.build.directory}
/配置
...


非常感谢您的回答,但不确定我们是否可以使用Shell从GIT签出,而且,签出一个位置然后使用Shell脚本复制到目标位置有点麻烦,因为我们还需要维护服务器列表。只需提及包含jar的父文件夹。如果jar位于子目录或多个目录中,它就会起作用h、 不确定GIT是否满意您的回答,但不确定我们是否可以使用Shell从GIT签出,而且,签出一个位置然后使用Shell脚本复制到目标位置是一种混乱的方法,因为我们还需要维护服务器列表。只需提及包含jar的父文件夹。如果jar位于r更深入。不确定git