Gb
Tourism
Framenet
- Standard setup for packaging is similar to:
<groupId>io.github.starlangsoftware</groupId>
<artifactId>Amr</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>NlpToolkit.Amr</name>
<description>Abstract Meaning Representation Library</description>
<url>https://github.com/StarlangSoftware/Amr</url>
<organization>
<name>io.github.starlangsoftware</name>
<url>https://github.com/starlangsoftware</url>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Olcay Taner Yildiz</name>
<email>olcay.yildiz@ozyegin.edu.tr</email>
<organization>Starlang Software</organization>
<organizationUrl>http://www.starlangyazilim.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/starlangsoftware/amr.git</connection>
<developerConnection>scm:git:ssh://github.com:starlangsoftware/amr.git</developerConnection>
<url>http://github.com/starlangsoftware/amr/tree/master</url>
</scm>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
- Only top level dependencies should be added. Do not forget junit dependency.
<dependencies>
<dependency>
<groupId>io.github.starlangsoftware</groupId>
<artifactId>AnnotatedSentence</artifactId>
<version>1.0.78</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
- Maven compiler, gpg, source, javadoc plugings should be added.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>8</source>
</configuration>
<version>3.10.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
- Currently publishing plugin is Sonatype.
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
- For UI jar files use assembly plugins.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<executions>
<execution>
<id>sentence-dependency</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>Amr.Annotation.TestAmrFrame</mainClass>
</manifest>
</archive>
<finalName>amr</finalName>
</configuration>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
- Add resources to the resources subdirectory. These will include image files (necessary for UI), data files, etc.
- Do not forget to comment each function.
/**
* Returns the value of a given layer.
* @param viewLayerType Layer for which the value questioned.
* @return The value of the given layer.
*/
public String getLayerInfo(ViewLayerType viewLayerType){
- Function names should follow caml case.
public MorphologicalParse getParse()
- Write toString methods, if necessary.
- Use Junit for writing test classes. Use test setup if necessary.
public class AnnotatedSentenceTest {
AnnotatedSentence sentence0, sentence1, sentence2, sentence3, sentence4;
AnnotatedSentence sentence5, sentence6, sentence7, sentence8, sentence9;
@Before
public void setUp() throws Exception {
sentence0 = new AnnotatedSentence(new File("sentences/0000.dev"));