Maven - Завжди завантажуйте джерела та javadocs


244

Чи можна налаштувати maven завжди завантажувати джерела та javadocs? Визначення -DdownloadSources=true -DdownloadJavadocs=trueкожного разу (що зазвичай відбувається разом із запуском mvn компіляції двічі, бо я забув перший раз) стає досить втомливим.


Це плагін eclipse? Вам би не довелося так часто бігати ...
sjr

1
Ні, це для програми командного рядка. Мені не доводиться запускати його дуже часто, але було б чудово, якби мені довелося запускати його ніколи!
schmmd

1
Що таке командний рядок? Це коли ти робиш mvn eclipse:eclipseправильно?
sjr

14
@sjr, так, для завантаження джерел і javadocs можна виконатиmvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Юрій Наконечний

Я думаю, що на це питання досі не відповіли. Прийнята відповідь стосується лише плагіна Eclipse. @ Відповідь AlexisGamarra є найближчою, але не вирішує "наполегливість" рішення - він не встановлює Maven робити це завжди, коли ви запускаєте mvn install .
Honza Zidek

Відповіді:


265

Відкрийте файл settings.xml ~/.m2/settings.xml (створіть його, якщо його немає). Додайте розділ із доданими властивостями. Потім переконайтеся, що активні профілі містять новий профіль.

<settings>

   <!-- ... other settings here ... -->

    <profiles>
        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>
</settings>

6
Я намагаюся ці властивості профілю в Maven 2.2.1 і 3.0.2, і вони не працюють. Цільовим сховищем є Archiva. Будь-які пропозиції щодо того, що ще можна спробувати? Я також намагався використовувати залежність: ціль джерел. Дякую
jmend

18
Більше того, у Eclipse ви можете просто перейти до налаштувань -> Maven (немає підкатегорії). Там ви можете встановити прапорець "Завантажити джерела артефактів / JavaDocs". Однак іноді Eclipse не хоче створювати цей файл вручну (це трапилося зі мною в Luna). У такому випадку - перейдіть туди, вставте цю відповідь, загорнуту в теги налаштувань, і скажіть Eclipse, щоб її повторно завантажили, і вона повинна працювати.
Андрій Барсан

9
Це працювало для мене: у Eclipse перейдіть до Налаштування -> Maven (Без підкатегорії). Поставте прапорець - "Завантажити джерело артефактів" - "Завантажити артефакт JavaDocs" - "Оновити проекти Maven при запуску" (тільки тому, що я не можу знайти ручний спосіб). Потім перезапустіть Eclipse. Готово
Дірк

4
Це впливає лише на плагін Maven Eclipse.
Jingguo Yao

9
Це не має бути прийнятою відповіддю! Як заявив @JingguoYao, це впливає лише на плагін Maven Eclipse. Первісне питання стосувалося не затемнення, а скоріше самого Мевена.
Honza Zidek

195

У моєму випадку рішення "settings.xml" не працювало, тому я використовую цю команду для завантаження всіх джерел:

mvn dependency:sources

Ви також можете використовувати його з іншими командами Maven, наприклад:

mvn clean install dependency:sources -Dmaven.test.skip=true

Щоб завантажити всю документацію, використовуйте таку команду:

mvn dependency:resolve -Dclassifier=javadoc

1
Я думаю, що на це питання досі не відповіли. Прийнята відповідь стосується лише плагіна Eclipse. Ваша відповідь є найближчим, але не вирішує "наполегливість" рішення - він не встановлює Maven робити це завжди, коли ви запускаєте mvn install .
Honza Zidek

52

Просто консолідуючи та підготувавши єдину команду для адреси джерела та завантаження документів ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Відповідь для людей з Google

У програмі Eclipse ви можете автоматично завантажувати javadoc та джерела .

Для цього клацніть правою кнопкою миші на проект і використовуйте

  • Maven -> Завантажити JavaDoc
  • Maven -> Завантажити джерела

3
А в IDEA можна клацнути правою кнопкою миші Модуль, і в меню Maven є можливість завантажити джерела та / або документацію
forresthopkinsa

@Betlista прочитав перший рядок публікації. Багато людей їдуть з google сюди, шукаючи щось інше. Але в кінцевому підсумку, навіть з різними ключовими словами
Ghandhikus

14

Я використовую Maven 3.3.3 і не можу отримати профіль за замовчуванням для роботи в користувальницькому або глобальному settings.xmlфайлі.

Для вирішення проблеми ви також можете додати додатковий модуль збірки у свій pom.xmlфайл.

<properties>
    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>
<build>
    <plugins>
        <!-- Download Java source JARs. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>${maven-dependency-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>sources</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

7

У NetBeans : відкрийте провідник проекту- > Залежності -> [ файл.jar ] правою кнопкою миші-> Завантажити Javadoc


4

Як сказав @ xecaps12, найпростіший / ефективний підхід - це змінити файл налаштувань Maven (~ / .m2 / settings.xml), але якщо це налаштування за замовчуванням для вас, ви також можете встановити його так

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>

Це насправді не працює, ви просто оголошуєте невикористані глобальні властивості. Я вважаю, що міфічне рішення вийшло з maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

Ні, це просто спрощення відповіді «вирішено»;)
Крайс

1
Не працює і "вирішена" версія. (Я зробив такий самий коментар і там, але тимчасово видалив його, поки я з вами розмовляю.) Отже - ви говорите, що ваша відповідь (і, отже, вирішена відповідь) насправді працює для вас ?? Я маю на увазі, 159 людей завантажили цю неправильну чи застарілу відповідь, так що явно це працює для когось. Якщо він працює , як ви говорите, то , що я роблю що - то не так, як і кілька людей на дозволеному відповідь у своїх коментарях і я люблю , щоб дізнатися , що і отримати цю роботу.
inanutshellus

Я думаю, що ці глобальні вари перевіряються плагіном eclipse, коли ви насправді розвиваєтесь із eclise. виведення джерела здійснюється шляхом eclipse, а не maven в командному рядку.
Jonatan Cloutier

1

Я думаю, що це можна зробити за плагін. Дивіться цю главу з книги Мейвена.

Можливо, ви зможете налаштувати плагін для залежності для завантаження джерел (навіть якщо я сам цього не пробував :-).


1

У Netbeans ви можете доручити Maven перевіряти javadoc на кожен відкритий проект:

Tools| Options| Javaзначок | Mavenвкладка | Dependenciesкатегорія | Check Javadocспадний встановлений наEvery Project Open .

Закрийте і знову відкрийте Netbeans, і ви побачите Maven завантажити javadocs в рядку стану.


0

Не впевнений, але ви повинні зробити щось, встановивши активний профіль за замовчуванням у своїх налаштуваннях.xml

Побачити

Дивіться http://maven.apache.org/guides/introduction/introduction-to-profiles.html


Ах! Точно так, як описано @ xecaps12
pgbsl

9
Ви дійсно повинні скопіювати відповідні частини зі посилання у свою відповідь, на випадок, коли URL-адреса порушиться.
Дункан Джонс

0

Просто змініть файл mvn(або mvn.cmdякщо він є в Windows) і додайте потрібні комутатори командного рядка (як зазначено в інших відповідях). Якщо ви не хочете змінювати файли встановлення (що я б рекомендував), створіть mymvn(або mymvn.cmd) обгортку, яка викликає регулярний mvnпараметр.


0

Мені довелося використовувати KeyStore для завантаження банок. Якщо у вас є які-небудь проблеми, пов'язані з сертифікатом, ви можете використовувати такий підхід:

mvn clean install dependency:sources -Dmaven.test.skip=true -Djavax.net.ssl.trustStore="Path_To_Your_KeyStore"

Якщо ви хочете знати, як створити KeyStores, це дуже гарне посилання: Проблеми з використанням Maven та SSL позаду проксі


0

Для джерел рівня залежності (pom.xml) ви можете додати:

<classifier>sources</classifier>

0

Щоб продовжити відповідь від кевінарпе, це робить і джерела, і Javadocs:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>sources</goal>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>javadoc</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.