简体   繁体   中英

replace classes with library classes

I have a quite large amount of java sources (an open Source Project), where i want to "patch" some class files with my own for debugging pruposes, without touching the original code.

So I made Patch-Project where i altered eg. com.package.abc.java

Now i want to tell eclipse and/or maven to build the original Project, but overwirte its own (original) com.package.abc.java from /src with the patched abc.java from my second Project, which i exported as a library.jar and added to /libs in the original Project.

The Stucture looks like this

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

patch:
/src
 com/package/
  abc.java

How do i do this with eclipse and maven plugin?

Side-Node: This would be a perfect case for Dependency injection.

But to solve your problem, use the maven compiler plugin and edit the pom of the open source project:

<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>

Edit: If you don't want to edit the pom of the original project (this is a bit hacky in my opinion):

Create a profile in your ~/.m2/settings.xml which contains the plugin configuration:

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

and then build the open source project with this profile:

mvn -Pig verify

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM