我安装了一个构建盒:
我已经将Bamboo配置为从远程Git源获取我的Maven项目,然后使用目标' clean install'来构建它。
我已经为Archiva配置了两个回购:
我对Maven settings.xml进行了以下更改:
# Define local repo - this is the same location as i have set up for the Archiva 'dev' repo.
<localRepository>/opt/maven-repo/dev</localRepository>
# Define the Archiva mirror i set up
<mirror>
<id>mirror</id>
<url>http://localhost:8080/repository/mirror/</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
当我执行构建时,Maven通过镜像抓取所有外部内容,然后将构建的工件添加到dev,以及从镜像中抓取的其他jar。所以我现在有一些重复的罐子......
\回购\镜\的junit \ junit的 \回购\镜\ classworlds \ classworlds \回购\ dev的\的JUnit \的JUnit \回购\ dev的\ classworlds \ classworlds \回购\ dev的\我\ myartifact
我的问题是,这是正确的方法吗?真的,我想保持&#39; dev&#39;只有我的文物和镜子与中心的所有东西 - 我不想要重复。
我是否应该在settings.xml中使用LocalRepository配置,或者我应该使用&#39; mvn deploy&#39;通过不同的方法将工件放在我的Archiva存储库中?
有人可以澄清本地和远程存储库的不同用例吗?
最后,我应该如何定义我的POM?目前,我刚刚定义了
<distributionManagement>
<repository>
<id>dev</id>
<url>file:///repo/dev</url>
</repository>
</distributionManagement>
我应该加入镜子吗?
答案 0 :(得分:0)
要将工件放入存储库管理器,您应使用maven-deploy-plugin
的默认值,该默认值可由distributionManagement
控制。通过定义distributionManagement来控制放置这些东西的目标。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<distributionManagement>
<repository>
<id>releases</id>
<name>Release</name>
<url>http://urlArchiva/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url>http://urlArchiva/snapshots/</url>
</snapshotRepository>
...
</distributionManagement>
...
</project>
用于使用工件的存储库在settings.xml中定义
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://serverUrlArchiva/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
在Bamboo上,您应该能够控制哪个settings.xml用于每个构建都有一个本地存储库,这使得构建彼此独立。