0

我正在尝试为我的一个项目设置 pom.xml。而且我不知道如何让它通过 HTTP 获取依赖项,而是通过 FTP 部署新的工件。

这是情况。我有一个多模块项目,我正在与其他一些人合作。我还碰巧租了一个便宜的网络服务器,它可以让我通过一个 Maven 存储库共享我的一些模块的发布和快照版本。

我希望对存储库的部署进行身份验证(以便只有授权的人可以写入)并通过 FTP 完成。

另一方面,我希望每个人都能够通过 HTTP 匿名下载工件的发布版本。

到目前为止,我发现的唯一一件事就是将以下部分添加到我的 pom.xml

<distributionManagement>
    <snapshotRepository>
        <id>my.repo.snapshots</id>
        <name>My Repository - Snapshots</name>
        <url>${url}/snapshots</url>
    </snapshotRepository>
    <repository>
        <id>my.repo.releases</id>
        <name>My Repository - Releases</name>
        <url>${url}/releases</url>
    </repository>
</distributionManagement>

这个设置的问题是它不允许我选择 FTP 上传和 HTTP 下载。

有没有办法配置我的 pom.xml 来做到这一点?

4

1 回答 1

0

原来解决方案就在我的眼皮底下。用于部署工件的存储库确实是通过 配置的<distributionManagement/>,但用于获取工件的存储库是通过该<repositories>部分中的元素配置的<profiles>

我的工作 pom.xml 配置现在包括:

<distributionManagement>
    <repository>
        <id>deploy.releases</id>
        <name>Repository - Releases</name>
        <url>ftp://ftp.domain.com/releases/</url>
    </repository>
    <snapshotRepository>
        <id>deploy.snapshots</id>
        <name>Repository - Snapshots</name>
        <url>ftp://ftp.domain.com/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

<profiles>
    <profile>
        <id>project.default</id>

        <activation>
            <property>
                <name>!skipProjectDefaultProfile</name>
            </property>
        </activation>

        <repositories>
            <repository>
                <id>repo.releases</id>
                <url>http://maven.domain.com/releases/</url>
            </repository>
            <repository>
                <id>repo.snapshots</id>
                <url>http://maven.domain.com/snapshots/</url>
            </repository>
        </repositories>
    </profile>
</profiles>

最重要的是,我的 settings.xml 包含 FTP 的身份验证信息

<servers>
    <server>
        <id>deploy.releases</id>
        <username>user</username>
        <password>pass</password>
    </server>
    <server>
        <id>deploy.snapshots</id>
        <username>user</username>
        <password>pass</password>
    </server>
</servers>
于 2014-06-03T20:55:40.370 回答