【问题标题】:How to include specific folder in the Maven generated jar?如何在 Maven 生成的 jar 中包含特定文件夹?
【发布时间】:2017-08-23 06:24:11
【问题描述】:

我有以下 Maven 项目结构:

${basedir}/ 
  - pom.xml
  - lib/
    - dependency1.jar
    - dependency2.jar
    - ...
  - src/
    - main/..
    - test/..
  - target/
    - classes/..
    - blah/
    - uggh/

如何修改 pom 文件以在生成的输出 jar 中包含整个 lib 文件夹(及其内容)?

此文件夹包含不能成为 Maven 存储库一部分的第三方 jar。

【问题讨论】:

  • 真的有一个包含 jar 文件的 lib 文件夹吗?如果是,你做错了 Maven...应该被定义为依赖项但不是项目的一部分...

标签: java maven jar build pom.xml


【解决方案1】:

使用 maven-jar-plugin 将依赖项从 lib 复制到您的 fat jar 中

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>

                  <archive>
                    <manifest>
                    <addClasspath>true</addClasspath>
                    <mainClass>your.main.class</mainClass>
                    <classpathPrefix>lib/</classpathPrefix>
                    </manifest>
                  </archive>
                </configuration>
            </plugin>

【讨论】:

  • 谢谢,这成功了。如果我还想指定确切的目标位置?例如:/lib/....jars
【解决方案2】:

要指定确切的 jar 位置,请在 &lt;plugin&gt; 下的 &lt;build&gt; 下添加以下内容:

<configuration>             
  <outputDirectory>
    ${project.basedir}/../build/jars
  </outputDirectory>
</configuration>

【讨论】:

    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 2011-06-09
    • 2013-11-17
    • 2020-06-16
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多