maven 工程导出所有 JAR 依赖包

原创 maven

开发时我们也许因为各种情况,需要导出 maven 的所有 dependency 项,如果去 maven 仓库找会显的相当繁琐。

下面是简单的配置可以帮助我们轻松的得到所有的依赖 jar。

这里需要添加 maven-dependency-plugin 这个插件。

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

下面主要介绍两种常见使用:<goal>copy,和 copy-dependencies 的情况。

copy

以下代码为 copy 的设置,此时需要自己指定 artifactItem (也就是需要打包的项)。outputDirectory 为 jar 包输出目录。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>3.0.1</version>
  <configuration>
    <artifactItems>
      <artifactItem>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
      </artifactItem>
    </artifactItems>
    <outputDirectory>target/lib</outputDirectory>
  </configuration>
  <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy</goal>
        </goals>
      </execution>
  </executions>
</plugin>

此时运行 maven 打包命令: mvn clean package -Dmaven.test.skip=true。会在 target/lib 目录下生成我们配置的 jar 包。

copy-dependencies

copy-dependencies 是指当前工程依赖包,它已经关联了我们 pom.xml 中所有 dependencies 依赖的 jar。

而我们不需要导出的 jar 包,可以用 excludeArtifactIds 排除,这里我们选择排除测试工具包 junit。然后同样可以指定生成目录。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>3.0.1</version>
  <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
          <outputDirectory>target/lib</outputDirectory>
          <excludeArtifactIds>
            junit
          </excludeArtifactIds>
          <overWriteSnapshots>true</overWriteSnapshots>
        </configuration>
      </execution>
  </executions>
</plugin>

如图,工程中的依赖关系和配置:

maven 打包后导出了所有的依赖包:

然后就可以得到我们想要的 jar 包了。是不是很方便了。


maven-dependency-plugin 的更多使用可以查看:http://maven.apache.org/components/plugins/maven-dependency-plugin/usage.html

如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论