Maven:如何设置我的pom。xml,以便它可以通过HTTP获取依赖关系,并通过FTP部署模块

StackOverflow https://stackoverflow.com//questions/24022469

我在设置pom。我的一个项目的xml。而且我无法弄清楚如何让它通过HTTP获取依赖关系,而是通过FTP部署新的工件。

情况是这样的。我有一个多模块项目,我正在与其他人合作。我也碰巧租了一个便宜的web服务器,可以让我通过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来做到这一点?

有帮助吗?

解决方案

结果解决方案就在我眼皮底下。部署工件的存储库确实是通过 <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>

最重要的是,我的设置。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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top