Mait Release Plugin和GIT for git Repo中的其他修改过的mavenized项目

时间:2013-09-12 18:46:35

标签: git svn maven github maven-release-plugin

首先,让我给你一个关于我的git repo和我的设置的背景...
例如...... https://github.com/gitRepo/sqeTemp 在那个回购中,我有5个彼此无关的复仇项目。

gitRepo / sqeTemp

  > Project 1
  > Project 2
  > Project 3
  > Project 4
  > Project 5

在项目1的pom.xml内(这是我试图发布的项目,我有以下内容:

<scm>
    <connection>scm:git:git@github.com:gitRepo/sqeTemp.git</connection>
    <developerConnection>scm:git:git@github.com:gitRepo/sqeTemp.git</developerConnection>
    <url>http://github.com/gitRepo/sqeTemp</url>
</scm>

<distributionManagement>
    <repository>
        <id>releases</id>
        <url>
            http://ec2.compute.amazonaws.com:8081/nexus/content/repositories/releases
        </url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>
            http://ec2.compute.amazonaws.com:8081/nexus/content/repositories/snapshots
        </url>
    </snapshotRepository>
</distributionManagement>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <autoVersionSubmodules>false</autoVersionSubmodules>
    </configuration>
</plugin>

当我执行mvn release:prepare命令时,它抱怨我对项目2和项目3进行了本地修改,这应该没问题,因为它根本与项目1无关。
现在的问题是,如何告诉发布插件和Git只关注项目1,甚至不用看项目2和3。 我是GIT的新手,并且一直是SVN的长期用户,从未遇到过SVN这个问题。

2 个答案:

答案 0 :(得分:1)

使用Subversion,您只能检出存储库的子目录。这对Git来说是不可能的。对于大型项目,这意味着您总是必须下载整个存储库,即使您只需要某个子目录的当前版本。我相信这就是为什么发布插件抱怨其他项目的本地更改。这是git背后的一般概念,因此解决这个问题的最佳方法是将单独的项目移动到单独的git存储库或单独git submodules

答案 1 :(得分:0)

为了快速解决方法,您是否尝试从projekt 2和3中隐藏更改?