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

时间:2017-03-29 04:12:40

标签: java jar build maven-3 packaging

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

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

现在我想要的是,以某种方式创建jar(最好是在Maven Build Time),我的“config”文件夹也会被平行复制到jar中。

使用:Maven 3.3.9

当前项目结构:

ProjectParentFolder       - 混帐       - 。理念      --src      --config      --pom.xml

期望的输出

TargetFolder         --ProjectParentFolder.jar         --config

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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>