gpt4 book ai didi

maven - 如何配置 pom.xml 文件以使用 Nexus Repository manager

转载 作者:行者123 更新时间:2023-12-05 07:48:11 27 4
gpt4 key购买 nike

我正在使用 Redhat, java 1.7, maven 3.2.5, jenkins 1.6, git 版本 2.0.5nexus-2.12.0-01

我已经为我的内部开发创建了一个本地 Nexus Repository。现在我要做的是,使用 jenkinsNexus Repository Manger Os 构建 maven 项目。我可以在没有 Nexus Repository Manger Os 的情况下构建我的项目。

注意:我正在使用父 pom,因为我必须子项目。

以下是我遵循的步骤

  • 已安装 Nexus Repository Manger Os。它已启动并正在运行
    这是屏幕截图。

    Nexus repository is up and running

  • 在 nexus 存储库中安装 ojdbc5 jar

    2

  • 对 .m2 文件夹的 setting.xml 文件进行了必要的更改

这里是setting.xml的内容

<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">

<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>

<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>

<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://maven.apache.org</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.apache.org</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

<servers>
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>

</settings>
  • 在我的 pom.xml 中添加了 nexus 存储库的详细信息

pom.xml内容

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>parent</groupId>
<artifactId>A</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Maven Webapp</name>
<!--url>http://maven.apache.org</url-->

<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/thirdparty/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc5</artifactId>
<version>11.2.0.1</version>
</dependency>
</dependencies>

<modules>
<module>subModule1</module>
<module>subModule2</module>
</modules>
</project>

SubModule1 的 pom.xml

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.a</groupId>
<artifactId>a</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Webapp</name>

<distributionManagement>
<repository>
<id>releases</id>
<!-- CHANGE HERE by your team nexus server -->
<url>http://localhost:8081/nexus/content/repositories/thirdparty/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<!-- CHANGE HERE by your team nexus server -->
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

<dependencies>
// dependecies are defined here
<dependencies>

subModule1subModule2 中,我添加了 distributionManagement 部分。

但是当我构建我的项目时,出现以下错误。

[ERROR] Failed to execute goal on project submodule1: Could not resolve dependencies for project submodule1:war:1.0-SNAPSHOT: Failure to find com.oracle:ojdbc5:jar:11.2.0.1 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

我知道错误是由 com.oracle:ojdbc5:jar:11.2.0.1jar 依赖项无法解析引起的。

但我很惊讶为什么它没有从我的本地 nexus 存储库中获取它。

我是否遗漏了任何配置,或者我是否以错误的方式进行了配置?

如何为我的项目使用本地 nexus 存储库?

最佳答案

在您的 settings.xml 中,通常在您的 ~/.m2/目录中,您需要指定您的本地 Nexus。默认情况下,您只会获得 maven central。

 <profile>
<id>local</id>
<repositories>
<repository>
<id>nexus</id>
<name>libs-release</name>
<url>http://url to your local Nexus/artifactory/libs-release</url>
</repository>
</repositories>
</profile>

您可以根据需要添加任意数量的存储库元素。

确保正确的配置文件处于事件状态,位于 settings.xml 的底部

  <activeProfiles>
<activeProfile>local</activeProfile>
</activeProfiles>

此外,您将在 ~/.m2/repository/com/oracle ... 文件夹中留下一个 stub 。我总是执行 rm -r ~/.m2/repository/com/oracle 来强制它从远程仓库下载。

关于maven - 如何配置 pom.xml 文件以使用 Nexus Repository manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38898703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com