java - 如何在 Maven 2 中下载软件依赖项?

标签 java maven maven-2 jira jira-plugin

我是 Maven 的新手。如果有人能给我一些帮助,我将不胜感激。

我想为 JIRA 构建一个插件。我已经安装了 Maven 2 附带的 Atlassian Plugin SDK(预先捆绑在一起)。

在我的 Java 源代码中,我想从 Atlassian 存储库导入这些包:

import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.rpc.exception.*;
import com.atlassian.jira.rpc.auth.*;
import com.atlassian.jira.rpc.soap.beans.*;
import com.atlassian.jira.rpc.soap.service.*;
import com.atlassian.jira.rpc.soap.util.*;
import com.atlassian.jira.rpc.soap.JiraSoapServiceImpl;
import com.atlassian.jira.soap.axis.JiraSoapTokenResolver;
import org.apache.axis.encoding.Base64;

我尝试使用 Maven 构建另一个 example plugin来自阿特拉斯。我发现 Maven 能够从存储库下载所有必需的依赖包并毫无问题地构建应用程序。

但是,当我使用 Maven 构建自己的插件时,它无法从 Atlassian 存储库下载依赖项。它显示以下错误消息:

...
xxxxx.java:[x,x] package com.atlassian.jira.rpc.exception does not exist
xxxxx.java:[x,x] package com.atlassian.jira.rpc.auth does not exist
xxxxx.java:[x,x] package com.atlassian.jira.rpc.soap.beans does not exist
xxxxx.java:[x,x] package com.atlassian.jira.rpc.soap.service does not exist
xxxxx.java:[x,x] package com.atlassian.jira.rpc.soap.util does not exist
xxxxx.java:[x,x] package com.atlassian.jira.rpc.soap does not exist
...

xxxxx.java:[x,x] cannot find symbol
symbol: class JiraSoapService
...

在我的 pom.xml ,我已经包括了这些:

<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>atlassian-jira</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>

在 Maven settings.xml 文件中,我可以看到这些存储库(Maven 2 中的默认 settings.xml,它预先与 Atlassian Plugin SDK 安装捆绑在一起):

<repositories>
<repository>
<id>atlassian-public</id>
<url>https://m2proxy.atlassian.com/repository/public</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
<repository>
<id>atlassian-plugin-sdk</id>
<url>file://${env.ATLAS_HOME}/repository</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>atlassian-public</id>
<url>https://m2proxy.atlassian.com/repository/public</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>

我花了很长时间比较我的pom.xml与其他 JIRA 插件的 pom.xml .但我仍然不明白如何要求 Maven 从 Atlassian 存储库下载 JIRA 包。

谁能给我一些帮助?谢谢。

最佳答案

您的代码未编译,因为您包含的包未包含在 atlassian-jira JAR 中。看起来您至少需要以下附加依赖项:

<dependency>
  <groupId>atlassian-jira-rpc-plugin</groupId>
  <artifactId>atlassian-jira-rpc-plugin</artifactId>
</dependency>

但我无法在 JIRA 存储库中找到它。您可能需要通过 Google 查找它所在的存储库(或在本地手动安装)。

编辑

要将 JAR 安装到您的存储库中,您可以使用以下命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

关于java - 如何在 Maven 2 中下载软件依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545564/

相关文章:

java - 检索工件项目作为属性

具有 OAuth2(或任何其他 HTTP header 身份验证)的 Maven 存储库

java - 从 12 升级到 Intellij 13.1 后,Maven 项目无法编译

eclipse - Maven 2.2 Eclipse Target 不是受支持的 Maven Home

java - 比较器是可更新的还是可注入(inject)的对象?

android - 如何在 Android 中使用 Maven 仓库?

java - 如何告诉 Maven 使用最新版本的依赖项?

java - Spring:如何使用注释配置 Messaging Bridge 轮询器

java - JFrame 调用正在打开两个 JFrame

java - JUnit 参数化数据注入(inject)