首先,让我给你一个关于我的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这个问题。
答案 0 :(得分:1)
使用Subversion,您只能检出存储库的子目录。这对Git来说是不可能的。对于大型项目,这意味着您总是必须下载整个存储库,即使您只需要某个子目录的当前版本。我相信这就是为什么发布插件抱怨其他项目的本地更改。这是git背后的一般概念,因此解决这个问题的最佳方法是将单独的项目移动到单独的git存储库或单独git submodules
答案 1 :(得分:0)
为了快速解决方法,您是否尝试从projekt 2和3中隐藏更改?