设置maven以使用archiva存储库而不使用activeByDefault?

Sam*_*vin 3 archiva maven

我非常接近终于有一个与archiva和maven的工作设置.

最让我难以置信的是如何设置我的内部和快照存储库 - 而不使用包含activeByDefault设置为true的配置文件.

我正在使用SUPER super pom - 一个公司范围的pom,其中包含发布的分发管理信息.我以为我可以在这个pom中指定存储库,并在settings.xml中配置身份验证设置?我可以使用没有配置文件的存储库标记吗?我的内部和快照存储库应该没有"配置文件",因为它们永远不会改变...

我正试图避开的是使用"默认"配置文件,它始终处于活动状态.我听说activeByDefault不是最佳做法,我不打算使用它.

话虽如此,我该怎么做呢?我的内部仓库是maven中央仓库的镜像,所以我想锁定我的开发人员只使用我们的内部工件服务器.请记住 - 我不希望将activeByDefault设置为true的配置文件.我不能强调这一点!我应该使用Maven镜子吗?我应该"添加"其他存储库吗?

如果我使用存储库标记而不是镜像标记,maven强制构建仅使用我的archiva设置,而不是默认的maven中心?

或者我想要完成的只能使用maven中的镜像标签来完成?我知道如何在使用存储库标记时配置repo凭据,但不能使用镜像.这是怎么做到的?是否为镜像标记中的任何内容提供与存储库标记中的任何内容相同的凭据?

我错过了一些明显的东西吗 我已经把它放到了这里,使用maven进行操作.我知道它最终会值得,但它肯定会导致我大量的恶化,资源似乎很少.要么是这样,要么人们满足于使用它,但他们喜欢不考虑最佳实践.

谢谢

amu*_*niz 7

要将内部存储库用作中央镜像,您需要设置这样的镜像(在settings.xml中):

<mirrors>
    <mirror>
        <id>my-internal-repo</id>
        <mirrorOf>central</mirrorOf> // use * for do mirror of all
        <name>Clinker Maven Repository</name>
        <url>http://my-repo-host/my-repo-path</url>
    </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

如果my-internal-repo受到保护,您可以设置凭据:

<servers>
    <server>
        <id>my-internal-repo</id>
        <username>youruser</username>
        <password>yourpassword</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)

请注意,服务器标识标记内容应与镜像的ID匹配.

要使用internal-snapshots存储库,必须在项目POM中设置存储库,因为快照工件的使用应该在项目级别进行控制和明确定义,而不是在设置级别:

<repository>
    <id>internal-snapshots</id>
    <url>http://your-repo-host/internal-snapshots-path</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>
Run Code Online (Sandbox Code Playgroud)

最后,你必须internal-snapshots从镜像中排除:

<mirrors>
    <mirror>
        <id>my-internal-repo</id>
        <mirrorOf>central, !internal-snapshots</mirrorOf> // use * to do mirror of all
        <name>Clinker Maven Repository</name>
        <url>http://my-repo-host/my-repo-path</url>
    </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

并添加一个服务器(如果它受保护):

<servers>
    <server>
        <id>my-internal-repo</id>
        <username>youruser</username>
        <password>yourpassword</password>
    </server>
    <server>
        <id>internal-snapshots</id>
        <username>youruser</username>
        <password>yourpassword</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)