代码之家  ›  专栏  ›  技术社区  ›  zwessels Rémi Doolaeghe

Maven Assembly插件上传的参考工件

  •  0
  • zwessels Rémi Doolaeghe  · 技术社区  · 14 年前

    我们已经配置了maven assembly插件来创建单独的jars文件,这些文件通过deploy插件上传到本地maven repo。

    然而,我们需要在其他项目中将这些jar文件(由汇编插件创建的文件)作为maven依赖项引用。任何关于我们如何实现这一目标的想法都将不胜感激。

    使现代化 例如:

    -client (pom.xml - groupId=com.mycompany artifactId=client)
      |-src
        |-main
          |-java
            |-authentication
            |-billing
            |-reporting
    

    maven assembly插件将其拆分为3个不同的jar文件,并发布到我们的本地repo上,如下所示:

    -client-authentication.jar
    -client-billing.jar
    -client-reporting.jar
    

    我们如何引用客户端身份验证。jar作为另一个项目的依赖项,而没有自己的pom文件?

    2 回复  |  直到 4 年前
        1
  •  1
  •   Pascal Thivent    14 年前

    你有没有试着把 classifier 在依赖项中(您的工件有一个 version 是吗?:

    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>client</artifactId>
      <version>1.0-SNAPSHOT</version>
      <classifier>authentication</classifier>
      <type>jar</type>
    </dependency>
    

    但我要强调的是你要去 反对 这个 每个模块一个工件黄金法则 ,您应该将代码分为三个模块。

        2
  •  0
  •   naikus    14 年前

    您需要将该本地回购协议添加到其他项目的POM中

    <repositories>
      <repository>
         <id>my-local-repo</id>
         <name>My companywide local repo</name>
         <url>{the actual url of your repo}</url>
      </repository>
    </repositories>
    

    这样,您就可以将依赖项添加到这些POM中的那些工件中

      <dependency>
         <groupId>{some.group}</groupId>
         <artifactId>{my.local.repo.artifact}</artifactId>
         <version>{some.version}</version>
      </dependency>