Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven中不同配置文件的不同SCM_Maven_Svn_Version Control_Maven Profiles - Fatal编程技术网

Maven中不同配置文件的不同SCM

Maven中不同配置文件的不同SCM,maven,svn,version-control,maven-profiles,Maven,Svn,Version Control,Maven Profiles,在我的项目中,我们必须使用maben build number插件来构造jar的最终名称,为此,我们使用SCN的修订版,所以我们需要SCM 但我们在受控环境(无直接访问)和本地测试环境上有两个SVN,因此我们必须使用: <scm> <connection>scm:svn:http://dev.com/svn_repo/trunk</connection> <developerConnection>scm:svn:https://de

在我的项目中,我们必须使用maben build number插件来构造jar的最终名称,为此,我们使用SCN的修订版,所以我们需要SCM

但我们在受控环境(无直接访问)和本地测试环境上有两个SVN,因此我们必须使用:

<scm>
    <connection>scm:svn:http://dev.com/svn_repo/trunk</connection>
    <developerConnection>scm:svn:https://dev.com/svn_repo/trunk</developerConnection>
    <url>http://dev.com/view.cvs</url>
</scm>

scm:svn:http://dev.com/svn_repo/trunk
scm:svn:https://dev.com/svn_repo/trunk
http://dev.com/view.cvs
但对于客户环境:

      <scm>
        <connection>scm:svn:http://client.com/svn_repo/trunk</connection>
        <developerConnection>scm:svn:https://client.com/svn_repo/trunk</developerConnection>
        <url>http://client.com/view.cvs</url>
      </scm>

scm:svn:http://client.com/svn_repo/trunk
scm:svn:https://client.com/svn_repo/trunk
http://client.com/view.cvs
是否可以在不同的配置文件中配置此功能。我试过了

<profiles>
  <profile>
    <id>local</id>
    <scm>
        <connection>scm:svn:http://client.com/svn_repo/trunk</connection>
        <developerConnection>scm:svn:https://client.com/svn_repo/trunk</developerConnection>
        <url>http://client.com/view.cvs</url>
      </scm>
  </profile>
  <profile>
    <id>remote</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <scm>
        <connection>scm:svn:http://client.com/svn_repo/trunk</connection>
        <developerConnection>scm:svn:https://client.com/svn_repo/trunk</developerConnection>
        <url>http://client.com/view.cvs</url>
      </scm>
  </profile>
</profiles>

地方的
scm:svn:http://client.com/svn_repo/trunk
scm:svn:https://client.com/svn_repo/trunk
http://client.com/view.cvs
遥远的
真的
scm:svn:http://client.com/svn_repo/trunk
scm:svn:https://client.com/svn_repo/trunk
http://client.com/view.cvs

但是当我使用profile-Plocal时,什么也没有发生?

我通过为需要为不同配置文件更改的SCM连接详细信息创建一个属性来解决这个问题。下面是我所做工作的总结

在“特性”块中定义特性及其默认值

<properties>
    <developerConnectionUrl><!-- developerConnection url here --></developerConnectionUrl>
</properties>

设置scm块特性以使用全局特性

<scm>
    <developerConnection>${developerConnectionUrl}</developerConnection>
</scm>

${developerConnectionUrl}
创建了一个配置文件,可根据需要更改全局属性

<profiles>
    <profile>
        <id>local</id>
        <properties>
            <developerConnectionUrl><!-- developerConnectionUrl url for profile --></developerConnectionUrl>
        </properties>
    </profile>
</profiles>

地方的

据我所知,通过对模式的快速扫描,
scm
标记只能在POM的顶层使用,并且在
profile
标记内无效。不应更改工件的名称。只应包含某种类型的信息,以便能够识别生成源代码的源代码的状态。此外,我将在一个环境上构建并在其他环境中部署它。因此,您不需要几个SCM条目。最好使用像Jenkins这样的CI解决方案来解决这些问题……好的。明白我想要的在Maven是不可能的吗?你有没有找到解决办法?