2011-12-17 86 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)?,如果它不可用,請更改版本,哪一個版本完整。