Как я могу добавить исходный код в мои библиотеки зависимостей в Maven? - PullRequest
2 голосов
/ 17 февраля 2010

Например, я включил в свои зависимости junit-addons: junit-addons. Но в репозитории maven нет никакого исходного кода. И я знаю, что он существует (я его скачал). Как я могу изменить зависимости, чтобы использовать библиотеки из моего локального проекта вместо репозитория maven (я бы опустил junit-addons из репозитория и использовал вместо этого локальный JAR и его исходный код).

Примечание: я использую m2eclipse.

Ответы [ 5 ]

4 голосов
/ 18 февраля 2010

Я решил проблему очень простым способом:

Я скопировал в папку ${user.home}/.m2/repository/{group-name}/{artifactId}/{version}/ исходный файл, соответствующий стандарту MAVEN: {artifactId}-{version}-sources.jar, и он работает как шарм! Eclipse проверяет локальный репозиторий и находит источники.

Я не знаю, если это путь MAVEN.

2 голосов
/ 02 сентября 2011

Я использую бесплатную версию Artifactory репозитория. Я создал файл jar {artifactId} - {version} -sources.jar и загрузил в репозиторий в тот же идентификатор группы, что и двоичный файл jar. Затем в моем pom я добавил зависимость:

<dependency>
            <groupId>mygroupid</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0</version>
            <classifier>source</classifier>
        </dependency>

Во время фазы сборки maven jar был загружен в мой локальный репозиторий. Я использую NetBeans 7.0, и все автоматически для меня. Например, если щелкнуть правой кнопкой мыши на методе и правильно выбрать go toSource, я получу исходный код в банке.

2 голосов
/ 17 февраля 2010

Как я могу изменить зависимости, чтобы использовать библиотеки из моего локального проекта вместо репозитория maven

Ты не можешь. Если JAR-источник недоступен в центральном репозитории, просто поместите исходные файлы где-нибудь в вашей файловой системе в папку, JAR или zip (вы можете install:install-file архивировать источники в вашем локальном репозитории, следуя соглашениям Maven) и настроить Eclipse. чтобы использовать их ( щелкните правой кнопкой мыши на JAR в разделе Maven Dependencies в Package Explorer , выберите Java Source Attachment и настройте Путь к местоположению ).

1 голос
/ 17 февраля 2010

Вы можете использовать файл установки mojo для локальной установки артефактов в локальный репозиторий maven.Если вы хотите поделиться этим артефактом с другими (например, своей командой или другой рабочей станцией), вы можете использовать свой собственный менеджер хранилища (например, Nexus ) и настроить его в качестве зеркала для любого хранилища, например центрального.Nexus будет извлекать (и кэшировать) артефакты из центра.Кроме того, вы можете загрузить практически любой артефакт (например, источники junit-addons) в вашу установку Nexus.

Чтобы выполнить настройку зеркала, вам необходимо отредактировать ${user.home}/.m2/settings.xml

<settings>
  <!-- SNIP -->
  <mirrors>
    <mirror>
      <id>nexus-releases</id>
      <mirrorOf>*</mirrorOf>
      <!-- replace nexus.example.com with the location of your nexus installation -->
      <url>http://nexus.example.com/releases</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
      </repositories>
      <id>nexus</id>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
    </profile>
  </profiles>
</settings>
0 голосов
/ 17 февраля 2010

После того, как вы загрузили его в свой локальный репозиторий, вы можете сделать его копию. Дайте ему новый artifactId (например, libraryName-myVersion) и добавьте зависимости в pom. Убедитесь, что вы изменили имена папок, jar-имена, имена pom и сам artifactId в pom. Храните все в вашем локальном хранилище. Теперь вы можете использовать взломанную версию вашей зависимости.

Но, честно говоря, я не думаю, что это хорошая идея. Но, возможно, это помогает / не может быть предотвращено в вашем случае.

...