2012-07-05 150 views
0

Maven是否可以在一系列依赖项版本中多次构建和测试项目?在一系列依赖关系中构建多个Maven构件

例如,说我有以下库:

groupId  artifactId version 
com.example library  1.0 
com.example library  1.1 
com.example library  2.0 
com.example library  2.2 

而且我的构建产生罐子神器:output.jar

我可以产生针对每个库的版本如下:

groupId  artifactId version result 
com.example library  1.0  output_1.0.jar 
com.example library  1.1  output_1.1.jar 
com.example library  2.0  output_2.0.jar 
com.example library  2.2  output_2.2.jar 

回答

2

尝试型材http://maven.apache.org/guides/introduction/introduction-to-profiles.html

<profiles> 
    <profile> 
    <id>version1.0</id> 
    <dependencies> 
     <dependency> 
     <groupId>com.example</groupId> 
     <artifactId>library</artifactId> 
     <version>1.0</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>${project.artifactId}-library-1.0.jar</finalName> 
    </build> 
    </profile> 
    <profile> 
    <id>version1.1</id> 
    <dependencies> 
     <dependency> 
     <groupId>com.example</groupId> 
     <artifactId>library</artifactId> 
     <version>1.1</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>${project.artifactId}-library-1.1.jar</finalName> 
    </build> 
    </profile> 
</profiles> 

然后当你调用行家,: MVN -Pversion1.1

你的一个配置文件可能应该被激活了,这样就可以无需激活特定的配置文件进行编译。

<activation> 
    <activeByDefault>true</activeByDefault> 
</activation> 
+0

ps:这不会多次构建它,因为您必须为每个不同的配置文件调用maven来测试编译。要么创建一个shell /批处理脚本来执行该操作,要么使用构建软件(jenkins,等等......)就可以完成该操作。 – Matt 2012-07-06 00:29:13

+0

正是我在找的,谢谢。太糟糕了,我不能指定一系列的依赖关系,这将是非常光滑的。 – 2012-07-06 18:51:48

1

您可以使用jenkins或hudson的矩阵项目功能。请参阅https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project

多配置项目对于您的构建将执行许多类似构建步骤的实例非常有用,否则您将会复制步骤。

但是你不能以这种方式在本地机器上构建项目。

+0

这可能与Matt的答案中的Maven配置文件很好地配合。我会给它一个镜头。 – 2012-07-06 18:53:07