Maven 2 Maven:如何从远程存储库下载/包含文件?
我使用的是Maven 3.0.3。对于我们的项目,我们为集成测试阶段启动了一个Selenium服务器,以便运行测试。我们有一个自定义的用户扩展文件,我们像下面这样集成了该文件Maven 2 Maven:如何从远程存储库下载/包含文件?,maven-2,maven,selenium,Maven 2,Maven,Selenium,我使用的是Maven 3.0.3。对于我们的项目,我们为集成测试阶段启动了一个Selenium服务器,以便运行测试。我们有一个自定义的用户扩展文件,我们像下面这样集成了该文件 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <version>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>start-server</goal>
</goals>
<configuration>
<background>true</background>
<logOutput>true</logOutput>
<userExtensions>${project.basedir}/src/test/resources/selenium/user-extensions.js</userExtensions>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.mojo
selenium maven插件
1.1
预集成测试
启动服务器
真的
真的
${project.basedir}/src/test/resources/selenium/user-extensions.js
这个文件存在于git存储库中,我更希望我们从git存储库下载文件的最新版本,而不是将其复制到我们的项目中,并在文件的新版本出现时手动更新所有项目。但是,我不知道如何获取文件的最新版本并将其包含在Maven.a中的插件中有什么想法?使用maven scm插件
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>Foo</id>
<goals>
<goal>export</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<connectionUrl>scm:git:...</connectionUrl>
<exportDirectory>${project.build.directory}</exportDirectory>
</configuration>
</execution>
</executions>
</plugin>
maven scm插件
1.2
福
出口
产生资源
scm:git:。。。
${project.build.directory}
解决这个问题的maven方法是在生成的工件(例如jar或zip文件)中构建一个包含此文件的单独模块,并将其部署到maven存储库中
然后,您可以使用maven dependencies插件从maven存储库中检索它,将它解压缩到您的目标文件夹,并在selenium插件调用中引用它。请记住,使用这种方法,如果此文件夹下有其他文件/目录(
${connectionUrl}
)因此,我建议你考虑Torsten的解决方案。但是连接URL可以选择一个单独的文件。有趣的是。前一段时间,我尝试了这个(出于一个原因或另一个原因)。.在我使用Subversion的时候?git支持单文件签出吗?好吧,在这种情况下,我相当肯定,这将不允许签出/导出单个文件,而是--整个目录。这如何解决最初的要求?”我更希望我们从git存储库下载最新版本的文件,而不是将其复制到我们的项目中,并在新版本的文件出现时手动更新所有项目。”通常,有了Maven,还有一个CI服务器(Jenkins、Hudson、TeamCity),它负责将SNAPSHOT-s重新部署到Maven存储库中。将此类资源提取到单独的模块对我和其他许多这样做的人来说都是有意义的。这取决于您是否始终希望检索最新版本,或者您是否选择构建的可复制性。使用存储库可以指定您正在使用的工件的版本,而使用scm插件将始终为您提供最新版本。如果这是您想要的,您可能应该使用其他条目中显示的scm aproach。您好,Torsten,谢谢,但是是否有其他方法从git存储库签出单个文件(我始终需要最新版本)并将其复制到我的构建中?仅为一个Javascript文件构建一个新模块似乎有些过头了。