【问题标题】:How to use Apache Archiva with Maven?如何在 Maven 中使用 Apache Archiva?
【发布时间】:2017-01-03 15:26:56
【问题描述】:

我已经设置了 Apache Archiva 并向其中添加了几个文件:

我认为一切看起来都不错。

我已更新我的 settings.xml 文件以包含配置文件:

然后我将上述依赖项添加到我的 pom.xml 文件中:

我保存它以便它重建,然后砰!

拜托,看在这个世界上所有美好事物的份上,有人能告诉我我做错了什么吗?

错误信息实际上是这样写的:

将快照更改为“true”并添加屏幕截图。

【问题讨论】:

  • 所列出的依赖项和错误不相关。同样在你的 settings.xml 中,<snapshots> <enabled> 应该是 true 如果你试图在存储库中保留你的工件的 SNAPSHOT。
  • @nullpointer 添加了带有当前错误消息的屏幕截图。非常感谢任何帮助。
  • 尝试对快照使用true,也可以尝试执行mvn clean install并在问题中而不是错误屏幕截图中发布相关的失败日志。
  • @nullpointer,将快照更改为“true”并添加屏幕截图。
  • 您需要凭据才能访问您的存储库吗?如果是这样,那么您的设置中将需要一个 部分。此外,您可能还需要一个 。也许你可以运行mvn -X clean install...

标签: maven archiva


【解决方案1】:

在 Apache Archiva 和 Maven 之间建立连接是一项艰巨的任务。

我最终偶然发现了 Stack 上的另一篇文章,它对解决这个问题很有帮助。对于我的一生,我似乎无法再次给予适当的信任。如果我最终再次找到它,我会发布,这样你就可以获得甜蜜的业力。

这是我的 settings.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

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

<proxies>
    <proxy>
        <id>optional</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>myproxyserver.name.org</host>
        <port>8080</port>
        <nonProxyHosts>localhost|myserver</nonProxyHosts>
     </proxy>
</proxies>

<servers>
    <server>
        <id>my.snapshots</id>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>Central</id>
        <url>http://repo.maven.apache.org/maven2</url>
        <mirrorOf>my.snapshots</mirrorOf>
    </mirror>
    <mirror>
        <id>archiva.default</id>
        <mirrorOf>Central</mirrorOf>
        <url>http://myserver:8080/repository/internal/</url>
    </mirror>
    <mirror>
        <id>my.snapshots</id>
        <mirrorOf>Central</mirrorOf>
        <url>http://myserver:8080/repository/snapshots</url>
    </mirror>
</mirrors>

<profiles>
    <profile>
        <id>internal</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>archiva.internal</id>
                <name>Archiva Managed Internal Repository</name>
                <url>http://myserver:8080/repository/internal/</url>
                <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
                <snapshots><enabled>false</enabled></snapshots>
            </repository>
            <repository>
                <id>archiva.snapshots</id>
                <name>Archiva Managed Internal Repository</name>
                <url>http://myserver:8080/repository/snapshots/</url>
                <releases><enabled>false</enabled></releases>
                <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>

<activeProfiles>
    <activeProfile>internal</activeProfile>
</activeProfiles>

我知道这可能不是最有效的布局,但它终于奏效了。如果有人有任何建议以使其更简洁,请随时加入。

2018 年 6 月 20 日更新:

我的组织刚刚为我们的工件服务器切换到 ProGet。与 Apache Archiva 相比,它更易于使用。

ProGet 的 settings.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">

    <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>mycompany.ourproxy.org</host>
            <port>8080</port>
            <nonProxyHosts>localhost|servernamewhereProGetlives</nonProxyHosts>
        </proxy>
    </proxies>

    <mirrors>
        <mirror>
            <id>ProGet</id>
            <url>http://servernamewhereProGetlives/maven/</url>
            <mirrorOf>*,!central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

当然不要忘记在项目的 pom 文件中引用存储库。

<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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>myproject</groupId>
    <artifactId>something</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
            <id>ProGet</id>
            <name>My Site - ProGet</name>
            <url>https://myserver.org/feeds</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <artifactId>something</artifactId>
            <groupId>something-something-whatever</groupId>
            <version>1.1.3</version>
        </dependency>
    </dependencies>
</project>

我希望这对正在研究这些东西的人有所帮助。祝你好运!

【讨论】:

  • @MauricePerry,很抱歉我不明白你的问题。你在问什么?
  • 你说你偶然发现的帖子
  • @MauricePerry,我无法再次找到它,但我必须承认我并没有看得太难。
  • 非常感谢。我只需要存档配置文件中的两个 定义。现在我的 Snapshot 包显示在 web ui 中,我可以在那里下载它们。 Archiva 看起来棒极了。而且好像可以和maven 3通信
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多