Svn maven scm插件在每次执行时删除输出文件夹
我需要从2个不同的svn位置下载到同一个输出目录。所以我配置了两个不同的执行。但每次执行签出时,它都会删除输出目录,因此也会删除已下载的项目 下面是我的pom.xml的一个示例:Svn maven scm插件在每次执行时删除输出文件夹,svn,version-control,maven-2,svn-checkout,maven-scm,Svn,Version Control,Maven 2,Svn Checkout,Maven Scm,我需要从2个不同的svn位置下载到同一个输出目录。所以我配置了两个不同的执行。但每次执行签出时,它都会删除输出目录,因此也会删除已下载的项目 下面是我的pom.xml的一个示例: <profile> <id>checkout</id> <activation> <property> <name>checkout</name> <value>true</va
<profile>
<id>checkout</id>
<activation>
<property>
<name>checkout</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.3</version>
<configuration>
<username>${svn.username}</username>
<password>${svn.pass}</password>
<checkoutDirectory>${path}</checkoutDirectory>
<skipCheckoutIfExists/>
</configuration>
<executions>
<execution>
<id>checkout_a</id>
<configuration>
<connectionUrl>scm:svn:https://host_n/folder</connectionUrl>
<checkoutDirectory>${path}</checkoutDirectory>
</configuration>
<phase>process-resources</phase>
<goals>
<goal>checkout</goal>
</goals>
</execution>
<execution>
<id>checkout_b</id>
<configuration>
<connectionUrl>scm:svn:https://host_l/anotherfolder</connectionUrl>
<checkoutDirectory>${path}</checkoutDirectory>
</configuration>
<phase>process-resources</phase>
<goals>
<goal>checkout</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
结账
结账
真的
org.apache.maven.plugins
maven scm插件
1.3
${svn.username}
${svn.pass}
${path}
结帐
scm:svn:https://host_n/folder
${path}
过程资源
结账
结帐
scm:svn:https://host_l/anotherfolder
${path}
过程资源
结账
是否有任何方法防止执行删除文件夹${path}的操作
我想出了一个解决方案,但我无法让它发挥作用: 我在配置文件中添加了maven clean插件的执行:
<profile>
<id>checkout</id>
...
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>not-clean</id>
<configuration>
<filesets>
<fileset>
<directory>${path}</directory>
<excludes>
<exclude>*/*</exclude>
</excludes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
结账
...
maven清洁插件
不干净
${path}
*/*
假的
初始化
清洁的
但我不知道如何排除文件夹中的所有内容
有什么想法吗?是:将每个SVN位置放在一个Maven模块(子项目)中,然后创建第三个项目,其中包含连接这两个模块的代码 背景:对于Maven,每个POM.xml总是有一个项目。如果您觉得需要从多个地方连接数据,请创建模块,然后使用父POM将它们连接到一个“reactor项目”中
要构建,请在父“reactor项目”中调用Maven。我已经修改了Maven scm插件的源代码。增加了我需要的功能
谢谢你的时间和帮助 要格式化代码,请将每行缩进四个空格。您可以解释一下为什么需要在Maven中签出代码吗?为什么需要两个位置?这不应该由连续集成服务器(例如Hudson?)来完成吗?啊……你不能使用Subversion和其他VCT两次签出到同一个目标位置。@Aaron:我已经完成了,但它似乎对我不起作用。我在pom.xml的开头放了一个字符,在末尾放了另一个字符。也许这就是问题所在@khmarbaise:这不是一个新项目。是这样做的,我知道这不是最好的方法。我需要知道这是否可行。谢谢你们的评论。谢谢你们的快速重播。但是我不能修改项目的结构(这是一个多模块的项目),那么你已经完成了一半。我说的是一个多模块项目。事实上,您无法将两个SCM源签出到同一文件夹中,因为每次调用都会删除源中找不到的所有内容。因此,您必须签出到两个不同的地方,或者必须使用自定义ant任务。查看antrun插件。修改源在哪里?