Maven - 添加对工件源的依赖

Jac*_*son 11 dependencies maven-2

我有两个maven模块,一个最终作为一个jar,一个战争依赖于那个jar.

我希望jar模块将它的源代码与jar中编译的类一起打包,以便第二个模块能够访问它.我尝试过使用maven-source-plugin,但我对如何在输出中添加依赖项感到困惑.似乎默认情况下依赖关系是编译的jar,而不是maven-source-plugin创建的源代码jar(以"-source.jar"结尾).

如何将"-source.jar"添加为依赖项,同时仍然保留对已编译源的依赖?

Mik*_*ell 20

我没试过这个,但我认为你需要在你的项目中创建两个配置文件.一个建立主罐子的人.另一个构建源jar.不幸的是,我不确定如何构建该配置文件.到目前为止,我找不到一个很好的例子.

(根据评论,您实际上并不需要配置文件.您可以使用sources-plugin来部署源并通过源分类器使它们可用)

理论上,您可以使用第二个配置文件将源附加到项目中.这将在您的存储库中为使用该分类器的源创建第二个条目.将源安装/部署到存储库后,您应该能够通过使用依赖项上的分类器标记将源作为依赖项包括在内,以直接指定源.

所以你在webapp POM中有这样的东西:

<dependencies>
  <dependency>
    <groupId>myGroup</groupId>
    <artifactId>myJar</artifactId>
    <version>4.0</version>
    <type>jar</type>
  </dependency>
  <dependency>
    <groupId>myGroup</groupId>
    <artifactId>myJar</artifactId>
    <version>4.0</version>
    <type>jar</type>
    <classifier>sources</classifier>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

  • 对不起 - 我的意思是<classifier>,而不是<type>! (3认同)
  • 我甚至不需要配置文件,maven-source-plugin自动提供"sources"分类器.刚刚将<type> sources </ type>添加到依赖项:) (2认同)
  • 我们为mGWT项目设置了相同的设置。我们将AutoBean接口放在服务器上的服务(使用CXF的REST服务)和mGWT客户端上的服务使用的“共享” maven模块中。问题在于,maven gwt:compile目标需要源代码和编译版本才能完成。上面的配置对我们也很好。 (2认同)