Como desarrollador de Java, si va a crear una herramienta o aplicación de comparación de código fuente o si necesita administrar varias versiones de archivos de código, entonces puede pensar en cómo **comparar y combinar archivos de código fuente en Java **. Si es así, este artículo explicará con qué facilidad podemos hacer esto sin tener que escribir una serie de líneas de código. Además, veremos cómo podemos recuperar, aceptar o descartar los cambios mientras fusionamos los archivos de código fuente.
Este artículo cubrirá los puntos que se indican a continuación:
- Biblioteca Java para comparar y fusionar archivos de código fuente
- Cómo comparar y fusionar archivos de código fuente en Java
- Obtenga la lista de cambios usando Java
- Opciones avanzadas en la biblioteca de comparación de código Java
Biblioteca Java para comparar y fusionar archivos de código fuente
Para comparar y fusionar archivos de código fuente, utilizaremos la comparación de código biblioteca de Java, que consta de todas las características importantes y destacadas de comparación de código fuente. Esta biblioteca de comparación de código Java se puede descargar o se puede instalar directamente usando la configuración de Maven como se indica a continuación.
<repository>
<id>groupdocs-artifacts-repository</id>
<name>GroupDocs Artifacts Repository</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>22.11</version>
</dependency>
Cómo comparar y fusionar archivos de código fuente en Java
Supongamos que tenemos dos archivos (source.cs y target.cs) de diferentes versiones de un código fuente como se muestra en la siguiente captura de pantalla.
Al considerar los archivos anteriores, escribamos un fragmento de código en Java siguiendo los pasos que se indican a continuación:
- Inicialice la clase Comparador con la ruta o secuencia del documento de origen.
- Invoque el método add() y especifique la ruta o secuencia del documento de destino.
- Invoque el método compare().
El siguiente ejemplo de código muestra con qué facilidad puede comparar y fusionar archivos de código fuente en Java.
//Instantiate Comparer object with source document path or stream; | |
try (Comparer comparer = new Comparer(SourceFile)) { | |
// Invoke add method and specify target document path or stream. | |
comparer.add(TargetFile); | |
//Invoke compare method. | |
final Path resultPath = comparer.compare(ResultPath); | |
} |
Como resultado, obtendremos el archivo de código fuente fusionado y un archivo HTML que destaca los cambios en el código. Tenga en cuenta que los elementos eliminados se marcarán en rojo , los agregados, en azul , y los modificados, en verde .
Obtener la lista de cambios usando Java
Para obtener la lista de todos los cambios después de la comparación, escribiremos el código según los siguientes pasos:
- Inicialice el objeto Comparador con la ruta del archivo de origen.
- Invoque el método add() y especifique la ruta del archivo de destino.
- Invoque el método compare().
- Obtenga la lista de cambios usando el método getChanges().
El ejemplo de código siguiente muestra cómo obtener la lista de todos los cambios.
//Initialize Comparer object with source file path | |
try (Comparer comparer = new Comparer(sourceFile)) { | |
//Invoke [add][] method and specify target file path. | |
comparer.add(targetFile); | |
//Call compare method | |
final Path resultPath = comparer.compare(); | |
//Get the list of changes by using getChanges method | |
ChangeInfo[] changes = comparer.getChanges(); | |
//Display the changes count | |
System.out.println("Count of changes: " + changes.length); | |
} |
Opciones avanzadas en la biblioteca de comparación de código Java
Si necesita aceptar o rechazar varias versiones de código, es posible que deba aplicar o descartar los cambios. En este caso, siga los pasos que se indican a continuación:
- Inicialice el objeto de la clase Comparador con la ruta o secuencia del documento de origen.
- Llame al método add() y establezca la ruta del documento de destino.
- Invoque el método compare().
- Invoque el método getChanges() y obtenga la lista de cambios detectados.
- Establezca ComparisonAction del objeto de cambio necesario en el valor ComparisonAction.ACCEPT o ComparisonAction.REJECT.
- Llame al método applyChanges() y pásele la colección de cambios.
El siguiente fragmento de código muestra cómo usar las opciones avanzadas de la biblioteca de comparación de código.
//Initialize Comparer object with source file path | |
try (Comparer comparer = new Comparer(sourcePath)) { | |
//Invoke [add][] method and specify target file path. | |
comparer.add(targetPath); | |
//Call compare method | |
final Path resultPath = comparer.compare(outputPath); | |
//Get the list of changes by using getChanges method | |
ChangeInfo[] changes = comparer.getChanges(); | |
//Set ComparisonAction of needed change object to ComparisonAction.ACCEPT value. | |
for (int i = 0; i < 10; i++) { | |
changes[i].setComparisonAction(ComparisonAction.ACCEPT); | |
} | |
//Set ComparisonAction of needed change object to ComparisonAction.REJECT value. | |
for (int i = 10; i < changes.length; i++) { | |
changes[i].setComparisonAction(ComparisonAction.REJECT); | |
} | |
// Call applyChanges method and pass collection of changes to it. | |
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes)); | |
} |
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.
Conclusión
En resumen, esperamos que haya aprendido a comparar y fusionar archivos de código fuente en Java usando una biblioteca de comparación de código Java. Como resultado, tiene el resumen del contenido insertado o eliminado. Además, ha recorrido las formas de obtener la lista de cambios y aceptar o rechazar los cambios identificados.
Puede visitar la documentación para explorar otras características.
Hacer una pregunta
Puedes hacernos saber tus dudas o consultas en nuestro foro.
preguntas frecuentes
¿Cómo comparar y fusionar archivos de código fuente en Java?
Inicialice la clase Comparador con la ruta o secuencia del documento de origen, llame al método add() y configure la ruta o secuencia del documento de destino. Después de eso, invoque el método compare() de la clase Comparer.