Java 在IntelliJ/Maven中使用不同的发布周期从多个git Repo编码多个模块

Java 在IntelliJ/Maven中使用不同的发布周期从多个git Repo编码多个模块,java,eclipse,git,maven,intellij-idea,Java,Eclipse,Git,Maven,Intellij Idea,我正在从事一个项目,该项目有4个模块,每个模块都有自己的git repo和自己的发布周期: 母体聚甲醛 lib1 lib2 服务器1 还有另一个项目,比如“server2”,它也依赖于lib1和lib2,并继承父pom 我在Maven和Teamcity中设置了它们,并提供了发布和快照工件repos,但我正在尝试解决如何在IntelliJ中配置我的环境,以便它在我的工作站上本地构建它们 我不想每次更改父pom中的版本或库API上的参数时都执行git推送或mvn部署 父pom和库由另一个项目共享

我正在从事一个项目,该项目有4个模块,每个模块都有自己的git repo和自己的发布周期:

  • 母体聚甲醛
  • lib1
  • lib2
  • 服务器1
还有另一个项目,比如“server2”,它也依赖于lib1和lib2,并继承父pom

我在Maven和Teamcity中设置了它们,并提供了发布和快照工件repos,但我正在尝试解决如何在IntelliJ中配置我的环境,以便它在我的工作站上本地构建它们

我不想每次更改父pom中的版本或库API上的参数时都执行git推送或mvn部署

父pom和库由另一个项目共享,这就是为什么它们有单独的git repo和发布周期,因此另一个项目不受此项目活动的约束

我希望IntelliJ能够获取、编译并运行我在本地所做的最新代码更改,例如在运行REST服务器时,同时我希望maven能够在我运行mvn任务时处理本地更改

我在模块中使用mvn
relativePath
快捷方式指向父pom,如下所示:

    <relativePath>../shared-parent-pom</relativePath>
像这样:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.me.stuff</groupId>
    <artifactId>aggregator</artifactId>
    <packaging>pom</packaging>
    <version>1-SNAPSHOT</version>
    <modules>
        <module>../shared-parent-pom</module>
        <module>../gem-utilities</module>
        <module>../gem-security</module>
        <module>../tardis</module>
    </modules>
</project>
我看到Maven要去repos尝试下载lib2所依赖的lib1快照,但失败了:

C:\dev\tools\Java\jdk1.8.0_131\bin\java -Dmaven.multiModuleProjectDirectory=C:\dev\workspace\aggregator -Dmaven.home=C:\IntelliJ-2017.1\plugins\maven\lib\maven3 -Dclassworlds.conf=C:\IntelliJ-2017.1\plugins\maven\lib\maven3\bin\m2.conf -javaagent:C:\IntelliJ-2017.1\lib\idea_rt.jar=62781:C:\IntelliJ-2017.1\bin -Dfile.encoding=UTF-8 -classpath C:\IntelliJ-2017.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2017.1.4 -s C:\Users\adam\.m2\settings.xml dependency:tree
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] lib1
[INFO] lib2
[INFO] server
[INFO] aggregator
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building lib1 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ lib1 ---
[INFO] com.me.stuff:lib1:jar:1.0.2-SNAPSHOT
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.0.0-M4:test
[INFO] |  +- org.opentest4j:opentest4j:jar:1.0.0-M2:test
[INFO] |  \- org.junit.platform:junit-platform-commons:jar:1.0.0-M4:test
[INFO] +- org.lots-of-stuff:lots-of-stuff:jar:1.0.0:test                                                                     
[INFO] ------------------------------------------------------------------------
[INFO] Building lib2 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://my.artifactory.repo:8088/artifactory/snapshot-local/com/me/stuff/lib1/1.0.2-SNAPSHOT/maven-metadata.xml
Downloading: http://my.artifactory.repo:8088/artifactory/snapshot-local/com/me/stuff/lib1/1.0.2-SNAPSHOT/lib1-1.0.2-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] lib1 ............................................... SUCCESS [  2.612 s]
[INFO] lib2 ............................................... FAILURE [  2.378 s]
[INFO] server ............................................. SKIPPED
[INFO] aggregator ......................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.804 s
[INFO] Finished at: 2017-06-30T14:26:32+01:00
[INFO] Final Memory: 29M/275M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project lib2: Could not resolve dependencies for project com.me.stuff:lib2:jar:1.0.2-SNAPSHOT: Could not find artifact com.me.stuff:lib1:jar:1.0.2-SNAPSHOT in local-snapshots (http://my.artifactory.repo:8088/artifactory/snapshot-local) -> [Help 1]
[ERROR] 
我如何告诉maven不要尝试下载repos,而是从本地编译的源代码中执行操作


理想情况下,如果有人在Eclipse中这样做,我更喜欢一个与IntelliJ和cmd行一样适用的解决方案

使它们独立于项目没有聚合器独立的git Repo不要为此使用子模块/子树?另一个问题是:服务器是只使用lib1/lib2还是其他项目也使用lib1/lib2?在IntelliJ中,您可以将每个项目添加为一个“模块”(请参见文件->新建->模块)。使它们独立于项目没有聚合器独立于git repo不使用子模块/子树?另一个问题是:服务器是只使用lib1/lib2还是其他项目也使用lib1/lib2?在IntelliJ中,您可以将每个项目添加为“模块”(请参见文件->新建->模块)。
C:\dev\tools\Java\jdk1.8.0_131\bin\java -Dmaven.multiModuleProjectDirectory=C:\dev\workspace\aggregator -Dmaven.home=C:\IntelliJ-2017.1\plugins\maven\lib\maven3 -Dclassworlds.conf=C:\IntelliJ-2017.1\plugins\maven\lib\maven3\bin\m2.conf -javaagent:C:\IntelliJ-2017.1\lib\idea_rt.jar=62781:C:\IntelliJ-2017.1\bin -Dfile.encoding=UTF-8 -classpath C:\IntelliJ-2017.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2017.1.4 -s C:\Users\adam\.m2\settings.xml dependency:tree
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] lib1
[INFO] lib2
[INFO] server
[INFO] aggregator
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building lib1 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ lib1 ---
[INFO] com.me.stuff:lib1:jar:1.0.2-SNAPSHOT
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.0.0-M4:test
[INFO] |  +- org.opentest4j:opentest4j:jar:1.0.0-M2:test
[INFO] |  \- org.junit.platform:junit-platform-commons:jar:1.0.0-M4:test
[INFO] +- org.lots-of-stuff:lots-of-stuff:jar:1.0.0:test                                                                     
[INFO] ------------------------------------------------------------------------
[INFO] Building lib2 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://my.artifactory.repo:8088/artifactory/snapshot-local/com/me/stuff/lib1/1.0.2-SNAPSHOT/maven-metadata.xml
Downloading: http://my.artifactory.repo:8088/artifactory/snapshot-local/com/me/stuff/lib1/1.0.2-SNAPSHOT/lib1-1.0.2-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] lib1 ............................................... SUCCESS [  2.612 s]
[INFO] lib2 ............................................... FAILURE [  2.378 s]
[INFO] server ............................................. SKIPPED
[INFO] aggregator ......................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.804 s
[INFO] Finished at: 2017-06-30T14:26:32+01:00
[INFO] Final Memory: 29M/275M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project lib2: Could not resolve dependencies for project com.me.stuff:lib2:jar:1.0.2-SNAPSHOT: Could not find artifact com.me.stuff:lib1:jar:1.0.2-SNAPSHOT in local-snapshots (http://my.artifactory.repo:8088/artifactory/snapshot-local) -> [Help 1]
[ERROR]