我接手前任同事留下的一个项目。这个项目已经成熟了,我很难建立它。有一个内部块,当我运行mvn install时会产生错误。错误显示在maven central repo中找不到插件。我检查了,它不在那里。我碰巧找到了另一个包含插件jar文件的内部存储库。所以在块之外,我指定了一个指向内部回购。但是,当我再次运行mvn install时,它仍然会转到maven central repo来寻找插件。如何在正确的仓库中查找jar文件?我想通过指定列表,它会自动检查该列表?除了我添加的repo之外,之前没有设置存储库列表。
我无法让它工作的缺失插件是这样的:
<build>
<plugins>
<plugin>
<groupId>com.totsp.gwt</groupId>
<artifactId>maven-googlewebtoolkit2-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<gwtVersion>2.0.0</gwtVersion>
<style>OBF</style>
<gen>target/gwtgen</gen>
<runTarget>/</runTarget>
<extraJvmArgs>-Xmx512m</extraJvmArgs>
<port>8088</port>
<useHtmlUnit>true</useHtmlUnit>
<htmlUnitBrowsers>
<param>FF3</param>
</htmlUnitBrowsers>
</configuration>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugin>
</build>
答案 0 :(得分:3)
好了,既然你已经提供了pom的相关部分,我可以说你基本上有两个选择:要么获取插件的源代码并将其安装在本地仓库中,要么从maven获取插件项目存储库。
使用subversion客户端并从svn存储库获取插件的源代码(版本2.0-SNAPSHOT是当前版本),在本地存储库中构建并安装插件。这里使用svn命令行客户端:
$ svn co http://gwt-maven.googlecode.com/svn/trunk/maven-googlewebtoolkit2-plugin/ maven-googlewebtoolkit2-plugin
$ cd maven-googlewebtoolkit2-plugin
$ mvn install
请注意,此方法无法解决可移植性问题(另一个开发人员必须重复相同的步骤),并且我不能保证您将获得与之前的开发人员完全相同的代码版本。
将项目的Maven存储库声明为<pluginRepository>
并更改插件的版本(2.0-SNAPSHOT不可用)。像这样:
<pluginRepositories>
<pluginRepository>
<id>gwt-maven</id>
<url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>com.totsp.gwt</groupId>
<artifactId>maven-googlewebtoolkit2-plugin</artifactId>
<version>2.0-RC1</version>
<configuration>
<gwtVersion>2.0.0</gwtVersion>
<style>OBF</style>
<gen>target/gwtgen</gen>
<runTarget>/</runTarget>
<extraJvmArgs>-Xmx512m</extraJvmArgs>
<port>8088</port>
<useHtmlUnit>true</useHtmlUnit>
<htmlUnitBrowsers>
<param>FF3</param>
</htmlUnitBrowsers>
</configuration>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
同样,我不能说这个版本与其他开发人员使用的2.0-SNAPSHOT之间的变化。
最后但并非最不重要(但这可能不是您现在的首要任务),此插件已被弃用,并由Codehaus的gwt-maven-plugin取代。从长远来看,你应该考虑转向Codehaus插件。
答案 1 :(得分:1)
我相信您的同事已pluginRepository
配置了${MAVEN_HOME}/conf/settings.xml
。检查您是否有需要在Maven中配置的公司范围的回购。