Svn maven scm插件在每次执行时删除输出文件夹

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

我需要从2个不同的svn位置下载到同一个输出目录。所以我配置了两个不同的执行。但每次执行签出时,它都会删除输出目录,因此也会删除已下载的项目

下面是我的pom.xml的一个示例:

<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插件。修改源在哪里?