Как загрузить источники в локальный репозиторий Maven
Предположим, у меня есть Java-проект Maven 2 на моей локальной машине. Я создаю файл проекта .jar
и помещаю его в мое локальное хранилище Maven, используя mvn install
.
Вопрос:
Как я могу заставить Maven также выдвинуть jar
с исходными файлами проекта в локальный репозиторий?
Это полезно, если я буду использовать вышеупомянутый проект в качестве зависимости при разработке нового проекта и могу использовать функцию mvn eclipse:eclipse -DdownloadSources
.
Ответы
Ответ 1
Этот фрагмент автоматически устанавливает/развертывает исходную банку из любой установки/развертывания:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
Или из командной строки:
mvn clean source:jar install
Ответ 2
Я нашел лучший ответ, просто добавьте это в свой pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
И запустить из командной строки:
mvn install
Теперь maven установить на ваш локальный репозиторий jar и исходники
Решение найдено по адресу: https://www.mkyong.com/maven/generate-source-code-jar-for-maven-based-project/ (я не связан ни в каком случае)
Ответ 3
Одно дополнение к ответу выше:
Это все еще не работало правильно для меня. Sources.jar создан и доступен в целевой папке, но не в локальном хранилище. Причиной этого было то, что я указал фазу по-другому: <phase>install</phase>
В этом случае плагин maven install запускается первым и копирует файлы jar в локальный репозиторий. После этого генерируется source.jar (и, следовательно, не копируется).
[INFO] --- maven-install-plugin:2.4:install (default-install) @ foo ---
[INFO] Installing foo.jar into local repo
[INFO] Installing pom.xml into local repo
[INFO] Installing javadoc.jar into local repo
[INFO]
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ foo ---
[INFO] Building jar: foo-sources.jar
Поэтому важно указать более раннюю фазу, чем установка (как это правильно указано в принятом ответе).