Как загрузить источники для банки с Maven?
В моем проекте я использую JAR файл, предоставленный через Maven. Но то, что дает мне Мейвен, - это только эта банка - никаких джавакоков и источников. Нажатие "Download Sources" не влияет: Eclipse до сих пор не находит источники флага.
От чего это зависит? Должен ли репозиторий автоматически предоставлять источники?
Может быть, мне нужно что-то написать в POM, чтобы указать Maven для загрузки источников?
Мой текущий pom следует:
<repositories>
<repository>
<id>xuggle repo</id>
<url>http://xuggle.googlecode.com/svn/trunk/repo/share/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>xuggle</groupId>
<artifactId>xuggle-xuggler</artifactId>
<version>5.3</version>
<type>rar</type>
</dependency>
</dependencies>
Почему Maven не говорит о каких-либо комментариях об ошибке загрузки файлов?
Ответы
Ответ 1
Выполнение mvn dependency:sources
заставит maven загружать все источники всех банок в проекте, если источники доступны (загружаются в репозиторий, где размещается артефакт). Если вы хотите загрузить javadoc, команда mvn dependency:resolve -Dclassifier=javadoc
Также можно создать профиль в файле settings.xml и включить следующие свойства:
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
Ответ 2
mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc
Если у него нет источников, он должен сказать что-то вроде
[INFO] The following files have NOT been resolved:
[INFO] com.oracle:ojdbc6:java-source:sources:12.1.0.1
[INFO] javax:javaee-api:java-source:sources:6.0
Ответ 3
Лучше не полагаться на плагин Eclipse, поскольку он устарел. Использование свойств downloadSources
и downloadJavadocs
не помогло мне. Ответ выше, касающийся использования слова плагина зависимостей. Однако вы можете автоматически загружать источники и javadocs. Кроме того, вы можете захотеть создать исходную банку и javadoc jar. Поместите это в помпу вашего проекта. Если вы используете модули, введите родительский pom.
<build>
<plugins>
<!-- download sources and javadoc -->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>download-sources</id>
<goals>
<goal>sources</goal>
</goals>
</execution>
<execution>
<id>download-javadoc</id>
<configuration>
<classifier>javadoc</classifier>
</configuration>
<goals>
<goal>resolve</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Always create javadoc jar. -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Always create source jar. -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Ответ 4
Баки источника /javadoc, возможно, не были предоставлены и не находятся в репозитории - нет ничего, что требует наличия источника /javadoc jar.
Ответ 5
распространяющийся на ответ @hovanessyan.
Основной профиль для включения downloadSources и downloadJavadocs в Maven settings.xml будет выглядеть следующим образом.
например profile id is downloadSources
<!-- add the profile under profiles section -->
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
<!-- activate the profile under activeProfiles section -->
<activeProfiles>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
Ответ 6
Вы также можете загрузить источники в target/dependencies
, используя:
mvn -Dclassifier=sources dependency:copy-dependencies
Ответ 7
В eclipse, нажмите на свой проект, затем Maven>Download Sources
снова Maven>Download Javadoc