所以回答我的问题:D我想出了将不会在CI它很可能只是工作的工作做一个本地编译的时候,因为它利用了相对路径的解决方案的项目。最后,我概述了一个更强大但更复杂的方法,它应该能够满足日食和CI。
我在为战争项目的war插件配置设置attachClasses为true。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
</plugins>
然后,您可以参考罐子的依赖项目如下
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>storage-service-war</artifactId>
<version>${project.version}</version>
<classifier>classes</classifier>
</dependency>
然后,我想我可以从验收测试模块内使用嵌入码头或Tomcat运行我的测试中,指着他们war项目中使用相对路径定义的web.xml。
这通过命令行正常工作与行家,但在Eclipse :(失败
这样做的问题是,通过附加类产生的罐子是不是由Eclipse M2E整合拿起看到 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=365419不幸的是它不会是固定。
所以我暂时的解决办法是存储服务战项目中手动添加到日食我验收测试项目构建路径。它不是很大,但它的工作原理
上述解决方案是一个有点哈克但是所提出的替代方案涉及更多一点,
通过项目分成我认为这将有可能有正确的Eclipse的集成和对CI
storage-service
storage-service-core
storage-service-war
storage-service-acceptance-tests
storage-service-config
核心项目包含Web应用程序的逻辑和源工作,是类型的项目如下jar,配置包含web.xml和其他任何配置文件,并且也是jar类型。然后验收测试和战争项目都是类型战争,并且仅用于将核心项目打包成战争并将配置提取到webapp/WEB-INF目录,以便它们可以共享通用设置。