заменить классы на библиотечные классы

1

У меня довольно много источников java (открытый исходный проект), где я хочу "исправлять" некоторые файлы классов с моими собственными для отладки pruposes, не касаясь исходного кода.

Поэтому я сделал Patch-Project, где я изменил, например. com.package.abc.java

Теперь я хочу сказать eclipse и/или maven для создания исходного проекта, но перезагрузите его собственный (оригинальный) файл com.package.abc.java из /src с исправленным abc.java из моего второго проекта, который я экспортировал в виде библиотеки.jar и добавлен в /libs в исходном проекте.

Строка выглядит так:

Original:
/src
 com/package/
  abc.java
  def.java
/libs
 patch.jar

patch:
/src
 com/package/
  abc.java

Как мне сделать это с помощью плагина eclipse и maven?

  • 0
    Вы готовы отредактировать файл pom.xml в исходном проекте, чтобы добиться этого?
Теги:
maven
classpath

1 ответ

2

Side-Node: Это было бы идеальным вариантом для инъекции зависимостей.

Но чтобы решить вашу проблему, используйте плагин компилятора maven и отредактируйте pom проекта с открытым исходным кодом:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.1</version>
  <configuration>
    <excludes>
      <exclude>**/src/main/java/com/package/abc.java</exclude>
    </excludes>
  </configuration>
</plugin>

Редактировать: Если вы не хотите редактировать pom исходного проекта (это, по моему мнению, немного хакерское):

Создайте профиль в файле ~/.m2/settings.xml, который содержит конфигурацию плагина:

<profiles>
  <profile>
    <id>ig</id>
    <plugins>
      <!-- snippet from above -->
    </plugins>
  </profile>
</profiles>

а затем создайте проект с открытым исходным кодом с помощью этого профиля:

mvn -Pig verify
  • 0
    Да, но, как я уже сказал, я хочу не касаться оригинального проекта в максимально возможной степени. Спасибо за ваш ответ, я могу принять через 8 минут по причинам ^^
  • 0
    @billdoor К сожалению, <excludes> exclude <excludes> выглядит как параметр плагина, который не может быть передан в командной строке, на основании того факта, что для этого параметра не определено «свойство пользователя».
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню