【问题标题】:Maven - add dependency on artifact sourceMaven - 添加对工件源的依赖
【发布时间】:2010-11-03 16:19:44
【问题描述】:

我有两个 maven 模块,一个以 jar 的形式结束,一个 war 依赖于该 jar。

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

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

【问题讨论】:

    标签: maven-2 dependencies


    【解决方案1】:

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

    (根据 cmets,您实际上并不需要配置文件。您只需使用将部署源并通过源分类器使它们可用的源插件)

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

    所以你的 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>
    

    【讨论】:

    • 我什至不需要配置文件,maven-source-plugin 使“源”分类器自动可用。刚刚将 sources 添加到依赖项中:)
    • 抱歉 - 我的意思是 ,而不是
    • 我们为 mGWT 项目设置了相同的设置。我们将 AutoBean 接口放在“共享”maven 模块中,供服务器上的服务(使用 CXF 的 REST 服务)和 mGWT 客户端使用。问题是 maven gwt:compile 目标需要源和编译版本才能完成。上述配置对我们也很有效。
    【解决方案2】:

    您是否尝试将 src 目录添加为构建部分的资源目录?那应该在构建时将源代码复制到 jar 中。

    【讨论】:

      猜你喜欢
      • 2013-12-29
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多