【问题标题】:Build maven project to specific directory将maven项目构建到特定目录
【发布时间】:2021-11-01 09:09:19
【问题描述】:

我想将我的 maven 项目打包/构建到特定目录。我尝试使用:

<build>
    <directory>my/path/</directory>
</build>

但这会在my/path/ 下创建以下文件夹:

  • 生成的来源
  • maven-archiver
  • Maven 状态

还有我的 jar myProject.jar(无依赖)

我的目标是只将 myProject.jar (Fat/Uber jar) 放到该目录中,没有别的,我该如何实现?除此之外,我还想更改这个 jar 文件的名称。

【问题讨论】:

  • 这个插件似乎解决了我的文件夹问题,但它创建的 jar 没有依赖关系。 @tgdavies
  • 所以你使用的是 maven-assembly-plugin?
  • 刚刚尝试使用 maven-assembly-plugin,它覆盖了我的路径,导致在 Project-Folder/target/ 下构建 jar
  • 为什么需要构建到特定目录?将生成的 jar 放在 target 目录中有什么问题?

标签: java maven build


【解决方案1】:
  1. 您可以使用maven-assembly-plugin 来构建带有依赖项的jar。

文档中的示例

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      [...]
</project>
  1. 你可以使用maven-jar-plugin命令行选项-DoutputDirectory=

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <outputDirectory>/my/path</outputDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

将jar输出到另一个文件夹。

  1. 您可以使用 maven-jar-plugin 更改输出文件名

喜欢这个

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <finalName>myJar</finalName>                   
    </configuration>
</plugin>   

或者对于 Maven >= 3

 <packaging>jar</packaging>
 <build>
   <finalName>WhatEverYouLikey</finalName>
 </build>

【讨论】:

  • 它成功创建了 jar,但问题是它没有构建依赖项。这是我的 pom.xml:link我使用mvn package 来构建jar。
  • 1.您将使用此插件获得 2 个 jar 文件:.jar 和 -jar-with-dependencies.jar 2. 所有依赖项都位于 -jar-with-dependencies.jar
猜你喜欢
  • 2020-10-10
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
相关资源
最近更新 更多