2011-12-17 97 views
3

我是使用Maven的新手。感谢任何人都可以给我一些帮助。如何在Maven 2下载软件依赖关系?

我想为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从Atlassian构建另一个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文件中,我可以看到这些存储库(默认设置。XML Maven中2这与Atlassian的插件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包。

任何人都可以给我一些帮助吗?谢谢。

+0

它应该下载所需的依赖项,如果你'mvn编译' – 2011-12-17 15:03:54

+0

@Jigar Atlassian插件SDK建议用户使用预捆绑的Maven编译插件JIRA。我已经尝试过'atlas-compile','atlas-mvn compile',但它说'BUILD FAILURE ..编译失败..包com.atlassian.jira.rpc.xxx不存在' – newuser014 2011-12-17 15:12:26

+0

尝试'mvn compile'一次从包含所需依赖关系的POM所在的目录中下载所需的所有库 – 2011-12-17 15:15:31

回答

1

您的代码不会编译,因为您包含的软件包未包含在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> 
+0

我在我的'pom.xml'(版本= 4.4.1和scope =提供的)中添加了这个依赖项,但是Maven在回购库中找不到它。当我到'〜\ .m2 \ repository \ com \ atlassian \ jira \ plugins \ atlassian-jira-rpc-plugin \ 4.4.1'时,我发现这个jar文件'atlassian-jira-rpc-plugin-4.4.1 .jar'。这是编译我的代码所需的'jar'文件吗? – newuser014 2011-12-17 17:12:34

+0

是的,我无法在回购中找到它(正如我在我的回答中提到的)。但是你找到的那个确实是连接到你的IDE的正确的一个。 – Perception 2011-12-17 17:43:42

0

检查JIRA罐子提到的版本是否是远程仓库中(HTTPS:/ /m2proxy.atlassian.com/repository/public)?,如果它不可用,请更改版本,哪一个版本完整。