2011-08-01 40 views
1

我在这里遇到了相当多的情况:另一个团队正在构建一个Flex SDK,并将其作为一个独立的SWC文件集提供。在这一点上,我不能让他们建立一个单一的SWC文件库。导入“通配符”Maven项目依赖关系?

我试图使用这些文件作为Maven依赖关系传递给Flexmojos,但他们像40个文件,我不想管理他们每个人作为一个单独的依赖(毕竟他们是同一件事的一部分)。

有没有一种办法:

  1. 安装所有的SWC文件作为本地回购文物? (具有相同的groupId和版本,我猜是自动生成的artifactId)
  2. 使用“通配符”或插件在运行时生成依赖关系或其他东西,将这些作为依赖关系导入?

回答

2

这不会那样工作。依赖声明不能是动态的,这会破坏构建。你可以做的是让你的部署者创建一个包含pom包含所有SWC依赖项的汇总pom,并将该pom部署到你的nexus存储库中。你将能够使用该pom依赖。好处是,pom保持在一个中心位置。

+0

这也是我所怀疑的。 好的,那么我如何构建一个在运行时修改POM的插件?我看到MavenProject的接口允许通过setDependencies进行动态依赖注册。 – olygofren

+0

pom的动态修改不是一个好主意,也不会起作用,并会打破构建的可重复性。 – khmarbaise

+0

那么,你可以使用['getDependencies()']从Model类中获取所有代码(http://www.grepcode.com/file/repo1.maven.org/maven2/org.apache.maven/maven-model /3.0.3/org/apache/maven/model/ModelBase.java#ModelBase.addDependency%28org.apache.maven.model.Dependency%29)并添加你自己的。我认为Maven的开发人员会为此拍掌。你应该在Maven用户列表上发布这个。 –

-1

您可以使用build-helper-maven-plugin将工件添加到Flex SDK项目。因此,您可以使用SDK项目作为依赖项并获取可以使用的所有文件。

+0

Karl-Heinz,这也不管用,imho。他希望它完全动态地脱离代码。 –