Как загрузить программные зависимости в Maven 2?

Я очень новичок в использовании Maven. Оцените, если кто-нибудь может дать мне некоторую помощь.

Я хочу создать плагин для JIRA. Я установил Atlassian Plugin SDK, который поставляется с Maven 2 (предварительно в комплекте).

В моих исходных кодах 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. Я обнаружил, что 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 я вижу эти репозитории (settings.xml по умолчанию в Maven 2, который предварительно поставляется с установкой 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 с pom.xml другого плагина JIRA. Но я до сих пор не понимаю, как попросить Maven загрузить пакеты JIRA из репозитория Atlassian.

Может ли кто-нибудь помочь мне? Спасибо.


person newuser014    schedule 17.12.2011    source источник
comment
Он должен загрузить необходимые зависимости, если вы сделаете mvn compile   -  person jmj    schedule 17.12.2011
comment
@Jigar Atlassian Plugin SDK рекомендует пользователю использовать готовый Maven для компиляции плагина для JIRA. Я пробовал atlas-compile, atlas-mvn compile, но пишет BUILD FAILURE.. compilation failure.. package com.atlassian.jira.rpc.xxx does not exists   -  person newuser014    schedule 17.12.2011
comment
попробуйте сделать mvn compile один раз, чтобы загрузить все необходимые библиотеки из каталога, в котором находится ваш POM, включая необходимые зависимости   -  person jmj    schedule 17.12.2011
comment
@Jigar Я только что установил новый автономный Maven 2.2.1. Я использую mvn compile в каталоге моего pom.xml. Он показывает те же сообщения об ошибках, что и упомянутое выше.   -  person newuser014    schedule 17.12.2011
comment
Я надеюсь, что файл pom содержит зависимости от библиотеки, в которой есть эти классы (упомянутые в операторах импорта)   -  person jmj    schedule 17.12.2011
comment
Я очень новичок в использовании Maven. Мой pom.xml содержит эти строки <dependency> <groupId>com.atlassian.jira</groupId> <artifactId>atlassian-jira</artifactId> <version>${jira.version}</version> <scope>provided</scope> </dependency>. Достаточно ли этого, чтобы попросить Maven загрузить пакеты в моих кодах, например. import com.atlassian.jira.rpc.soap.beans.* и т. д.? Что-нибудь еще, что я должен добавить в свой pom.xml?   -  person newuser014    schedule 17.12.2011
comment
Я не уверен в этих библиотеках, можете ли вы проверить их в Интернете, если они содержат необходимые классы.   -  person jmj    schedule 17.12.2011
comment
@Jigar На этой странице (https://developer.atlassian.com/display/DOCS/Atlassian+Maven+Repositories) показан список репозиториев Atlassian. Рекомендуется использовать этот https://maven.atlassian.com/content/groups/public/. Но я не знаю, как найти доступные пакеты, например. как найти com.atlassian.jira.rpc.xxx? Можете ли вы помочь мне? Спасибо.   -  person newuser014    schedule 17.12.2011
comment
Проверьте findjar.com, найдите класс, и он даст вам банку, содержащую класс, попробуйте проверить, указана ли эта банка в ваших зависимостях.   -  person jmj    schedule 17.12.2011
comment
@Jigar Лично я думаю, что если Maven не может найти пакеты зависимостей в репозиториях, он должен был сгенерировать некоторые сообщения об ошибках, говорящие о том, что он не может найти необходимые пакеты в репозитории. Но я не видел таких сообщений об ошибках. Поэтому я думаю, что что-то не так с моим pom.xml или settings.xml. Кажется, что Maven даже не пытается ничего загрузить, когда я компилирую свои коды.   -  person newuser014    schedule 17.12.2011
comment
Может быть ... попробуйте с образцом приложения maven, которое загрузит небольшую единственную банку из этого списка, чтобы увидеть, работает ли она.   -  person jmj    schedule 17.12.2011
comment
@Jigar Если я хочу import com.atlassian.jira.rpc.soap.bean.*;, как мне написать зависимость в моем pom.xml? Можете ли вы привести простой пример? Спасибо.   -  person newuser014    schedule 17.12.2011
comment
ну, каждая банка размещена в определенном репозитории maven, но наиболее часто используемые и общие ресурсы и перечисленные доступны в центральных репозиториях maven. Я пытался найти этот в центральном, его там нет, вы могли бы найти эти банки из упомянутых репозиториев в вашем помпе с тегом <repositories>   -  person jmj    schedule 17.12.2011


Ответы (2)


Ваш код не компилируется, потому что пакеты, которые вы включаете, не содержатся в JAR-файле atlassian-jira. Похоже, вам понадобится как минимум следующая дополнительная зависимость:

<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>
person Perception    schedule 17.12.2011
comment
Я добавил эту зависимость в свой pom.xml (с версией = 4.4.1 и областью действия = предоставлено), но Maven не может найти ее в репозитории. Когда я захожу в ~\.m2\repository\com\atlassian\jira\plugins\atlassian-jira-rpc-plugin\4.4.1, я нахожу этот jar-файл atlassian-jira-rpc-plugin-4.4.1.jar. Это файл jar, необходимый для компиляции моих кодов? - person newuser014; 17.12.2011
comment
Да, я тоже не смог найти его в репо (как я уже упоминал в своем ответе). Но тот, который вы нашли, действительно подходит для ссылки на вашу IDE. - person Perception; 17.12.2011

проверьте, доступна ли указанная версия jira jar в удаленном репозитории (https://m2proxy.atlassian.com/repository/public)?, если она недоступна, измените версию, которая имеет полный jar.

person sethupathi.t    schedule 17.12.2011