批量级联更新maven父子模块版本号

  1. mvn versions:set -DnewVersion=4.1.1-yfd-1.0 -DgenerateBackupPoms=false

checkstyle

  1. mvn checkstyle:check

test

端口
-Dmaven.surefire.debug

使用Idea里的mvn

export MAVEN_HOME=’/Applications/IntelliJ\ IDEA\ CE.app/Contents/plugins/maven/lib/maven3’
export PATH=$PATH:$MAVEN_HOME/bin

chmod 777 /Applications/IntelliJ\ IDEA\ CE.app/Contents/plugins/maven/lib/maven3/bin/mvn

组合代替继承(import)

  1. <dependency>
  2. <groupId>com.fenbi</groupId>
  3. <artifactId>commons-parent</artifactId>
  4. <version>2021.08.1-BETA</version>
  5. <scope>import</scope>
  6. <type>pom</type>
  7. </dependency>

SpringBoot打包fatjar

  1. <build>
  2. <finalName>data-migration-manager</finalName>
  3. <plugins>
  4. <!-- spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin -->
  5. <plugin>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-maven-plugin</artifactId>
  8. <version>1.5.7.RELEASE</version>
  9. <executions>
  10. <execution>
  11. <goals>
  12. <goal>repackage</goal>
  13. </goals>
  14. </execution>
  15. </executions>
  16. </plugin>
  17. <plugin>
  18. <groupId>org.apache.maven.plugins</groupId>
  19. <artifactId>maven-deploy-plugin</artifactId>
  20. <version>2.8.2</version>
  21. <configuration>
  22. <skip>true</skip>
  23. </configuration>
  24. </plugin>
  25. <plugin>
  26. <groupId>org.apache.maven.plugins</groupId>
  27. <artifactId>maven-install-plugin</artifactId>
  28. <version>2.5.2</version>
  29. <configuration>
  30. <skip>true</skip>
  31. </configuration>
  32. </plugin>
  33. </plugins>
  34. </build>

版本仲裁

A 依赖了 B,A依赖了C的c1版本,B依赖了C的c2版本。
如果pom中只引入了A,那么C的版本为c1。
如果pom中同时引入了A和B,并且A在pom文件中的顺序更靠前,那么C的版本为c1。
如果pom中同时引入了A和B,并且B在pom文件中的顺序更靠前,那么C的版本为c2。

注意,如果A和B都是放在parent中的,自己的pom里引用了parent里的A和B。那么此时pom文件顺序其实是看自己的pom,而不是看parent pom。

模块恢复(灰色删除线)

image.png