Maven多模块服务/ api项目范围问题

时间:2017-11-09 08:49:56

标签: maven

我有一个maven多模块项目,称为重用,结构如下所示:

root
  |__pom.xml: group=com.test.project, id=reuse, version=1.0.0
  |__api-module
     |__pom.xml: parent={group=com.test.project, id=reuse, version=1.0.0}, id=reuse-api
  |__service-module
     |__pom.xml: parent={group=com.test.project, id=reuse, version=1.0.0}, id=reuse-srv

我有另一个项目" app"它使用重用依赖关系,具有不同的范围:

root
  |__pom.xml: <dependency>
                <groupId>com.test.project</groupId>
                <artifactId>reuse-api</artifactId>
                <version>1.0.0</version>
                <scope>compile</scope>
              </depedency>

              <dependency>
                <groupId>com.test.project</groupId>
                <artifactId>reuse-srv</artifactId>
                <version>1.0.0</version>
                <scope>runtime</scope>
              </depedency>

的问题:

  1. 如果我对重复使用服务模块进行了一些更改,是否可以将api版本保持为1.0.0,但是将服务版本设置为1.0.0.1?

  2. 项目&#34; app&#34;是否有办法声明部分wildcar依赖重用服务,如下所示:

              <dependency>
                <groupId>com.test.project</groupId>
                <artifactId>reuse-srv</artifactId>
                <version>1.0.0.*</version>
                <scope>runtime</scope>
              </depedency>
    

    我只是想避免重新编译项目&#34; app&#34;,只是因为重用了服务模块。 如果重用api发生变化,那么我会将重用api和服务版本更改为1.0.1,当然还有项目&#34; app&#34;必须适应和重新编译。

  3. 这可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

两种可能性:

  • 使用SNAPSHOT版本进行开发。 1.0.0-SNAPSHOT将始终解析为以该名称部署的最新版本。
  • 使用版本范围,例如[1.0.0,1.0.1)。这与*具有相同的含义,但现在不是推荐的做法。