如何为本地maven安装维护两个maven配置文件?

时间:2016-07-16 06:20:05

标签: maven maven-3

我在我的办公室使用本地机器进行开发工作(目前我正在为软件公司工作)。他们有不同的maven设置。它指向他们自己的maven存储库。 但是,对于我在家工作,我想访问默认的maven设置。

那么,我怎样才能做到这一点?是否可以通过为办公室和我自己的作品维护两个单独的maven配置文件来实现这一目标?

公司特定配置已定义了一些服务器和存储库。当我在家工作而不维护单独的settings.xml文件时,如何配置settings.xml文件以连接默认maven存储库?

1 个答案:

答案 0 :(得分:1)

是的,您可以为两者使用一个~/.m2/settings.xml文件。以下是我正在使用的示例。服务器位于配置文件之外,因为它们仅在ID引用时使用。

在我的IDE中,我为公司项目启用了comp个人资料,为atlassian SDK项目启用了atlassian个人资料,而对于其他项目则没有。在IntelliJ IDEA you can do this via sidebar中,在Eclipse中,您必须执行此操作via Project Properties。从命令行,您必须通过-P手动激活它们。但是,您可以尝试使用基于属性的自动配置文件激活。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>comp-releases</id>
            <username>me</username>
            <password>secret</password>
        </server>
        <server>
            <id>comp-snapshots</id>
            <username>me</username>
            <password>secret</password>
        </server>
    </servers>

    <profiles>
        <profile>
            <id>comp</id>
            <repositories>
                <repository>
                    <id>comp-nexus</id>
                    <name>Nexus Public</name>
                    <url>https://www.example.com/nexus/content/groups/public/</url>
                </repository>
            </repositories>
        </profile>
        <profile>
            <id>atlassian</id>
            <repositories>
                <repository>
                    <id>atlassian-public</id>
                    <url>https://maven.atlassian.com/repository/public</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>atlassian-public</id>
                    <url>https://maven.atlassian.com/repository/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <updatePolicy>never</updatePolicy>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
</settings>