在Maven中打包没有第三方依赖项的Jar

时间:2013-11-14 02:32:32

标签: java maven jar

我已经用Java创建了几个项目,我希望将其打包为组。我已经创建了一个包装项目来保存它们。所以我们几乎有这样的设置

  • 项目1 - 依赖于ThirdPartyProject1
  • 项目2 - 依赖于ThirdPartyProject2
  • 项目3 - 依赖于ThirdPartyProject3
  • WrapperProject - 依赖于Project1,Project2和Project3。

我们正在打包一个使用WrapperProject的项目,我的主管希望将第三方依赖项打包在单独的文件中,而不是在程序集期间生成的WrapperProject.jar。

我想知道这是否可能以及如何?我一直在研究Maven依赖插件,但之前没有使用它,所以我不太清楚它是如何工作的。在一天结束时,我想有一个lib文件夹和一个看起来像这样的Jar文件。

库   - ThirdPartyProject1.jar   - ThirdPartyProject2.jar   - ThirdPartyProject3.jar

WrapperProject.jar - Project1.jar - Project2.jar - Project3.jar

2 个答案:

答案 0 :(得分:1)

您可以使用copy resources插件制作/ target / lib文件夹。或者您可以使用assembly plugin创建所有依赖项的jar / zip。我不确定你在lib目录中做了什么,但把它作为一个zip文件可能会更方便。

答案 1 :(得分:0)

如果第三方jar在maven存储库中可用,那么您可以使用普通的maven构建命令“mvn package”, 或者jar是项目特定的自定义jar然后你应该使用命令“mvn install”将该jar安装到你的maven本地存储库中。请参阅以下链接,

http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/

完成后,将该依赖项和下面的构建配置包含到您的pom.XML中,然后更改主类。

 <build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build> 

现在构建项目然后你会得到两个jar没有依赖&amp;另一个是依赖类。