如何指定maven存储库

时间:2010-04-06 15:38:39

标签: maven-2

我接手前任同事留下的一个项目。这个项目已经成熟了,我很难建立它。有一个内部块,当我运行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>

2 个答案:

答案 0 :(得分:3)

好了,既然你已经提供了pom的相关部分,我可以说你基本上有两个选择:要么获取插件的源代码并将其安装在本地仓库中,要么从maven获取插件项目存储库。

选项#1

使用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 

请注意,此方法无法解决可移植性问题(另一个开发人员必须重复相同的步骤),并且我不能保证您将获得与之前的开发人员完全相同的代码版本。

选项#2

将项目的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中配置的公司范围的回购。