在本地安装maven插件

时间:2011-02-21 17:47:14

标签: java maven-2 maven-plugin maven-3

我相信你可以执行一个maven命令来下载并在本地存储库中安装一个插件。类似的东西:

mvn plugin:download -DartifactId=maven-war-plugin 
-DgroupId=org.apache.maven.plugins -Dversion=2.1.1  
-Dmaven.repo.remote=http://www.ibiblio.org/maven,http://maven-plugins.sourceforge.net/repository

我知道这通常应该在您构建pom.xml引用此插件的项目时发生,但我工作的安全策略异常,因此我需要手动安装插件。

上面的语法似乎不起作用,有没有人知道如何在Maven 3.0.2下执行此操作?

2 个答案:

答案 0 :(得分:1)

以上语法适用于Maven 1.0,其运行方式与Maven 2.0和Maven 3.0完全不同。您应该继续像以前那样引用插件 - 在这种情况下通过POM或者通过命令行直接引用某些类型的命令。要严格控制下载的工件,您可以使用存储库管理器(例如Apache Archiva,Artifactory或Nexus)进行干预(以及添加一些有趣的功能)。

以下是强制Maven使用托管存储库的方法:http://archiva.apache.org/docs/1.3.4/userguide/using-repository.html

您可以只添加要使用的工件,也可以配置有关可以从外部检索的内容的规则(例如http://archiva.apache.org/docs/1.3.4/adminguide/proxy-connectors.html

答案 1 :(得分:0)

处理插件和其他工件安装的最佳方法是在LAN上实现Maven存储库的实例。 Nexus等产品是开源的,易于设置。启动并运行后,手动将插件上传到Nexus。然后将您自己的本地Nexus实例作为插件存储库添加到settings.xml文件中,以供需要它的开发人员使用:

<pluginRepositories>
    <pluginRepository>
        <id>mycorp-plugin-release</id>
        <name>My Companys Nexus repository for plugin artifact releases</name>
        <url>https://intranet.mycorp.com/nexus/content/repositories/releases</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

说真的......最初设置需要一天时间,但会让您的生活更轻松,不应违反任何安全政策。它还有助于确保所有开发人员都使用完全相同的插件版本。