这里有各种非常常用的构建插件

打包插件

如果需要指定主类,可以使用maven-jar-plugin插件打包

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-jar-plugin</artifactId>
  4. <version>3.2.2</version>
  5. <configuration>
  6. <archive>
  7. <manifest>
  8. <addClasspath>true</addClasspath>
  9. <mainClass>${main.class}</mainClass>
  10. </manifest>
  11. </archive>
  12. </configuration>
  13. </plugin>

依赖插件

如果需要将其他依赖打包进这个jar包中,可以使用maven-assembly-plugin插件

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-assembly-plugin</artifactId>
  4. <version>3.3.0</version>
  5. <executions>
  6. <execution>
  7. <id>make-assembly</id>
  8. <phase>package</phase>
  9. <goals> <goal>single</goal> </goals>
  10. <configuration>
  11. <archive>
  12. <manifest>
  13. <mainClass>${main.class}</mainClass>
  14. </manifest>
  15. </archive>
  16. <descriptorRefs>
  17. <descriptorRef>jar-with-dependencies</descriptorRef>
  18. </descriptorRefs>
  19. </configuration>
  20. </execution>
  21. </executions>
  22. </plugin>

Kotlin

如果想要在Maven中使用Kotlin,需要kotlin-maven-plugin插件

https://kotlinlang.org/docs/maven.html

基本设置

将下面的内容写在properties

  1. <kotlin.version>1.7.0</kotlin.version>

打包只有Kotlin的文件

  1. <plugin>
  2. <groupId>org.jetbrains.kotlin</groupId>
  3. <artifactId>kotlin-maven-plugin</artifactId>
  4. <version>${kotlin.version}</version>
  5. <executions>
  6. <execution>
  7. <id>compile</id>
  8. <goals>
  9. <goal>compile</goal>
  10. </goals>
  11. </execution>
  12. <execution>
  13. <id>test-compile</id>
  14. <goals>
  15. <goal>test-compile</goal>
  16. </goals>
  17. </execution>
  18. </executions>
  19. </plugin>

将下面的内容写在build

  1. <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
  2. <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>

打包同时包含Java和Kotlin的文件

  1. <plugin>
  2. <groupId>org.jetbrains.kotlin</groupId>
  3. <artifactId>kotlin-maven-plugin</artifactId>
  4. <version>${kotlin.version}</version>
  5. <executions>
  6. <execution>
  7. <id>compile</id>
  8. <goals>
  9. <goal>compile</goal>
  10. </goals>
  11. <configuration>
  12. <sourceDirs>
  13. <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
  14. <sourceDir>${project.basedir}/src/main/java</sourceDir>
  15. </sourceDirs>
  16. </configuration>
  17. </execution>
  18. <execution>
  19. <id>test-compile</id>
  20. <goals> <goal>test-compile</goal> </goals>
  21. <configuration>
  22. <sourceDirs>
  23. <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
  24. <sourceDir>${project.basedir}/src/test/java</sourceDir>
  25. </sourceDirs>
  26. </configuration>
  27. </execution>
  28. </executions>
  29. </plugin>

同时,你还需要Java编译插件maven-compiler-plugin

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-compiler-plugin</artifactId>
  4. <version>3.10.1</version>
  5. <executions>
  6. <!-- Replacing default-compile as it is treated specially by maven -->
  7. <execution>
  8. <id>default-compile</id>
  9. <phase>none</phase>
  10. </execution>
  11. <!-- Replacing default-testCompile as it is treated specially by maven -->
  12. <execution>
  13. <id>default-testCompile</id>
  14. <phase>none</phase>
  15. </execution>
  16. <execution>
  17. <id>java-compile</id>
  18. <phase>compile</phase>
  19. <goals>
  20. <goal>compile</goal>
  21. </goals>
  22. </execution>
  23. <execution>
  24. <id>java-test-compile</id>
  25. <phase>test-compile</phase>
  26. <goals>
  27. <goal>testCompile</goal>
  28. </goals>
  29. </execution>
  30. </executions>
  31. </plugin>

添加依赖

  1. <dependency>
  2. <groupId>org.jetbrains.kotlin</groupId>
  3. <artifactId>kotlin-stdlib</artifactId>
  4. <version>${kotlin.version}</version>
  5. </dependency>