Maven 中不同配置文件的不同 SCM
Different SCM for different profiles in Maven
在我的项目中,我们必须使用 maben-build-number 插件来构造 jar 的最终名称,为此我们使用 SCN 的修订版,因此我们需要 SCM
但是我们在无法直接访问的受控环境和本地测试环境中有两个 SVN,因此对于我们的 pouproses 我们必须使用:
<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>
<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>
是否可以在不同的配置文件中进行配置。我试过了
<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>
但是当我使用配置文件 -Plocal 时,没有任何反应?
我通过为 SCM 连接详细信息创建 属性 解决了这个问题,我需要为不同的配置文件更改。这是我所做的总结。
定义了 属性 并且它是属性块的默认值。
<properties>
<developerConnectionUrl><!-- developerConnection url here --></developerConnectionUrl>
</properties>
设置 scm 块属性以使用全局属性。
<scm>
<developerConnection>${developerConnectionUrl}</developerConnection>
</scm>
创建了一个根据需要更改全局 属性 的配置文件。
<profiles>
<profile>
<id>local</id>
<properties>
<developerConnectionUrl><!-- developerConnectionUrl url for profile --></developerConnectionUrl>
</properties>
</profile>
</profiles>
据我所知,通过快速扫描架构,scm
标记只能在 POM 的顶层使用,在 profile
标记内无效
在我的项目中,我们必须使用 maben-build-number 插件来构造 jar 的最终名称,为此我们使用 SCN 的修订版,因此我们需要 SCM
但是我们在无法直接访问的受控环境和本地测试环境中有两个 SVN,因此对于我们的 pouproses 我们必须使用:
<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>
<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>
是否可以在不同的配置文件中进行配置。我试过了
<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>
但是当我使用配置文件 -Plocal 时,没有任何反应?
我通过为 SCM 连接详细信息创建 属性 解决了这个问题,我需要为不同的配置文件更改。这是我所做的总结。
定义了 属性 并且它是属性块的默认值。
<properties>
<developerConnectionUrl><!-- developerConnection url here --></developerConnectionUrl>
</properties>
设置 scm 块属性以使用全局属性。
<scm>
<developerConnection>${developerConnectionUrl}</developerConnection>
</scm>
创建了一个根据需要更改全局 属性 的配置文件。
<profiles>
<profile>
<id>local</id>
<properties>
<developerConnectionUrl><!-- developerConnectionUrl url for profile --></developerConnectionUrl>
</properties>
</profile>
</profiles>
据我所知,通过快速扫描架构,scm
标记只能在 POM 的顶层使用,在 profile
标记内无效