用库类替换类

时间:2014-05-30 10:19:37

标签: java maven classpath

我有相当多的java源代码(一个开源项目),我想用自己的“修补”一些类文件来调试pruposes,而不需要触及原始代码。

所以我制作了Patch-Project,我改变了例如。 com.package.abc.java

现在我想告诉eclipse和/或maven构建原始项目,但是从我的第二个项目中修补了来自/ src的com.package.abc.java,其中包含了修补的abc.java作为library.jar并添加到原始Project中的/ libs。

结构看起来像这样

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

patch:
/src
 com/package/
  abc.java

我如何使用eclipse和maven插件执行此操作?

1 个答案:

答案 0 :(得分:2)

Side-Node:这将是依赖注入的完美案例。

但要解决您的问题,请使用maven compiler plugin并编辑开源项目的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(我认为这有点hacky):

在〜/ .m2 / settings.xml中创建一个包含插件配置的配置文件:

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

然后使用此配置文件构建开源项目:

mvn -Pig verify