Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

Convert Project to Maven #2

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,10 @@ xcuserdata

dart/tests/Speedtest.dart.js.deps
dart/tests/Speedtest.dart.js.map

#Java Related
.settings/
.classpath
.project
.metadata
target/
171 changes: 171 additions & 0 deletions java/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>9</version>
</parent>

<groupId>com.google</groupId>
<artifactId>diff-match-patch</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

<properties>
<java-version>1.6</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.2</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>

<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<excludePackageNames>*.internal.*</excludePackageNames>
<failOnError>false</failOnError>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<inherited>true</inherited>
</execution>
</executions>
</plugin>

<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<useDefaultManifestFile>true</useDefaultManifestFile>
<archive>
<index>true</index>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>

<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<surefire.useFile>false</surefire.useFile>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version><!--$NO-MVN-MAN-VER$ -->
</plugin>
</plugins>
</build>

<name>Google Diff Match and Patch</name>
<url>https://github.com/google/diff-match-patch</url>
<description>Diff Match Patch is a high-performance library in multiple languages that manipulates plain text.</description>
<inceptionYear>2006</inceptionYear>
<organization>
<url>https://www.google.com</url>
<name>Google Inc</name>
</organization>
<scm>
<url>https://github.com/google/diff-match-patch</url>
<connection>scm:git:[email protected]:google/diff-match-patch</connection>
<developerConnection>scm:git:[email protected]:google/diff-match-patch</developerConnection>
</scm>
<issueManagement>
<system>github.com</system>
<url>https://github.com/google/diff-match-patch/issues</url>
</issueManagement>
<developers>
<developer>
<name>Neil Fraser</name>
<organizationUrl>https://www.google.com</organizationUrl>
<url>https://www.google.com</url>
<roles>
<role>Initiator</role>
<role>Commiter</role>
</roles>
<email>fraser at google.com</email>
</developer>
</developers>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>

<profiles>
<profile>
<id>release-sign-artifacts</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing trailing new line?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will add new line

Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@

/**
* Compile from diff-match-patch/java with:
* javac -d classes src/name/fraser/neil/plaintext/diff_match_patch.java tests/name/fraser/neil/plaintext/diff_match_patch_test.java
* javac -d target/classes src/main/java/name/fraser/neil/plaintext/diff_match_patch.java
* javac -classpath target/classes -d target/test-classes src/test/java/name/fraser/neil/plaintext/diff_match_patch_test.java
Copy link
Contributor

@NeilFraser NeilFraser Feb 15, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This second javac line gives me:
javac: directory not found: target/test-classes
[Oh, figured it out, one has to create three directories in advance.]

Also, corresponding changes are needed in Speedtest.java.

More generally, is there a reason why this directory tree is getting deeper and more complex? Is Maven unable to handle the previous structure?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible to configure maven to adopt previous structure. But how it is configured it is the standard. Also, since it is maven enabled, we would use maven to compile test. But since it is not Junit enabled, tests will not be picked to be run by Maven. I can convert the tests to Junit so you can just test with mvn test

*
* Execute with:
* java -classpath classes name/fraser/neil/plaintext/diff_match_patch_test
* java -classpath target/classes:target/test-classes name/fraser/neil/plaintext/diff_match_patch_test
*/

package name.fraser.neil.plaintext;
Expand Down