记录maven的问题及解决方案
问题
- 在
plugins
中报错Plugin execution not covered by lifecycle configuration: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate (execution: Generate MyBatis Artifacts, phase: generate-sources)
描述
在使用mybatis generator
时,maven配置为:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<!--
错误:Plugin execution not covered by lifecycle configuration: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate (execution: Generate MyBatis Artifacts, phase: generate-sources)
-->
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
解决方法
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
</plugins>
<!-- 解决问题: Plugin execution not covered by lifecycle configuration: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate
(execution: Generate MyBatis Artifacts, phase: generate-sources) -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
- 源码打包
描述:maven打包后默认的jar文件不带有.java源文件,不能在ide中查看文档
解决方法
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>**/*.java</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
参考:
maven实现打包带源代码的jar包
Copy Resources
- 配置编译时注解处理器
描述:使用maven编译项目,并使用自定义的注解处理器,类似于javac -cp xxx-processor.jar
解决方法:
如果是标准配置的jar,即通过配置jar文件META-INFO/services/javax.annotation.processing.Processor
,则不需要额外的配置,仅需要加载到依赖中即可。通过mvn clean compile
即可看到效果。
<dependencies>
<dependency>
<groupId>cn.navyd</groupId>
<artifactId>useful-annotation</artifactId>
<version>1.0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.navyd</groupId>
<artifactId>annotation-processor</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
</plugins>
</build>
eclipse也不需要配置,也能够发现注解处理器,享受eclipse 编译器提示。注意可能需要enable annotation processing和重启eclipse
eclipse maven自动配置