我正在尝试为我的一个项目设置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来做到这一点?
答案 0 :(得分: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>