报错
Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:help (default-cli) on project student-ouyk: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:help failed: Plugin org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5 or one of its dependencies could not be resolved: com.xxx.yyy.mybatis.generator.plugins:xxx-generator-plugins:jar:1.0.0.0 was not found in http://maven.aliyun.com/nexus/content/groups/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of nexus-aliyun has elapsed or updates are forced
Pom.xml
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.xxx.yyy.mybatis.generator.plugins</groupId>
<artifactId>gexin-generator-plugins</artifactId>
<version>1.0.0.0</version>
</dependency>
</dependencies>
</plugin>
setting.xml
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>local-nexus</id>
<url>http://192.168.10.49:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
com.xxx.yyy.mybatis.generator.plugins:xxx-generator-plugins:jar:1.0.0.0 是maven私服里的依赖包。
因为配置了私服以及阿里云仓库,根据报错可知,每次都从阿里云仓库拉取依赖。尝试将无法拉取的依赖加到<dependencies>标签内,发现可以成功拉取。
经过查找资料,发现插件内的依赖不会从setting文件配置的profile-repositories-url指定的仓库拉取,而是会从pluginRepositories中拉取,因为setting文件没有配置pluginRepositories,所以默认从阿里云仓库拉取,自然是拉不到的。
解决方法
在setting.xml 的 profile里新增pluginRepositories,将会从阿里云仓库和配置的私服拉取插件
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>local-nexus</id>
<url>http://192.168.10.49:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>local-nexus</id>
<url>http://192.168.10.49:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
网友评论