使用Maven构建依赖jar

时间:2015-01-27 14:39:40

标签: maven

目前,我们的maven构建使用jar-with-dependencies包含jar中的所有依赖项。

我们希望将其拆分为两个独立的jar,一个包含项目应用程序代码和文件,另一个包含依赖项。

这是怎么做到的?

由于

2 个答案:

答案 0 :(得分:1)

这是使用maven Assembly插件

完成的

http://maven.apache.org/plugins/maven-assembly-plugin/

答案 1 :(得分:0)

使用maven-shade-plugin代替以下配置:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <finalName>${project.artifactId}-${project.version}-libs</finalName>
    <artifactSet>
      <excludes>
        <exclude>${project.groupId}:${project.artifactId}</exclude>
      </excludes>
    </artifactSet>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
    </execution>
  </executions>
</plugin>

诀窍是定义一个特定的最终名称。这样可以避免替换默认的jar,它由maven-jar-plugin打包。默认名称为 $ {project.artifactId} - $ {project.version} 。所以只需添加一个后缀,如 libs 。然后排除工件本身,因为类不应该打包两次。

构建将产生两个jar文件:

  1. $ {project.artifactId} - $ {project.version} .jar ,包含项目的类和文件
  2. $ {project.artifactId} - $ {project.version} -libs.jar ,包含所有依赖项的内容