Как загрузить исходники в локальный репозиторий Maven - PullRequest
41 голосов
/ 27 октября 2010

Предположим, у меня есть Java-проект Maven 2 на моей локальной машине. Я создаю файл проекта .jar и помещаю его в локальный репозиторий Maven, используя mvn install.

Вопрос:

Как я могу заставить Maven также отправлять источники проекта jar в локальное хранилище?

Это полезно, если я буду использовать вышеупомянутый проект в качестве зависимости при разработке нового проекта и могу использовать функцию mvn eclipse:eclipse -DdownloadSources.

Ответы [ 3 ]

50 голосов
/ 27 октября 2010

Этот фрагмент автоматически устанавливает / развертывает исходный файл jar из любой установки / развертывания:

<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
0 голосов
/ 07 июня 2019

Одно дополнение к приведенному выше ответу:

Это все еще не работало правильно для меня.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

Поэтому важно указать более раннюю фазу, чем установка (как это правильно указано в принятом ответе).

0 голосов
/ 03 августа 2018

Я нашел лучший ответ, просто добавьте это в свой 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/ (я не связан ни с каким образом)

...