The easiest way to use this archetype is by cloning this git repository, installing the archetype in your local maven repository and then generating your project. But you can also configure your maven to use custom remote repositories if you need to generate projects in the future again.
# optionally run before
#git clone https://github.com/clarin-eric/fcs-endpoint-archetype.git
#cd fcs-endpoint-archetype
mvn clean install "archetype:update-local-catalog"With a custom repository, you need to update your local maven settings (can be found at ~/.m2/settings.xml) to include the CLARIN Nexus for archetype discovery and download.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<profiles>
<profile>
<!-- id for our custom profile (not active by default) -->
<id>clarin</id>
...
<repositories>
<repository>
<id>CLARIN-Snapshot</id>
<url>https://nexus.clarin.eu/content/repositories/clarin-snapshot</url>
</repository>
<repository>
<id>CLARIN</id>
<url>https://nexus.clarin.eu/content/repositories/Clarin</url>
</repository>
<!-- add repository for archetypes -->
<repository>
<id>archetype</id>
<url>https://nexus.clarin.eu/content/repositories/Clarin</url>
</repository>
</repositories>
...
</profile>
</profiles>
...
</settings>See:
- https://maven.apache.org/settings.html#repositories
- https://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html#archetypeCatalog
Now that your Maven can find the archetype definition, you can start the project generation:
mvn archetype:generate \
-Pclarin \
-DarchetypeGroupId=eu.clarin.sru.fcs \
-DarchetypeArtifactId=fcs-endpoint-archetype \
-DarchetypeVersion=1.6.0 \
-DgroupId=[ id.group.fcs ] \
-DartifactId=[ my-cool-endpoint ] \
-Dversion=[ 1.0-SNAPSHOT ] \
-DinstitutionName=[ My Institution ]The values for artifactIdCamelCase and package are used internally and should be kept as is. The Parameter classnamePrefix will be used as prefix for the generated class names: classnameEndpointSearchEngine, classnameSRUSearchResultSet and classnameConstants.
We use -Pclarin to select our clarin profile where the archetype repository is defined (to force select our remote repository instead of central).
Note that depending on the <version> in pom.xml and how you installed the Maven repository you should use -DarchetypeVersion=1.6.0 or -DarchetypeVersion=1.6.0-SNAPSHOT!
Install into local repository, and then test:
mvn archetype:generate \
-DarchetypeGroupId=eu.clarin.sru.fcs \
-DarchetypeArtifactId=fcs-endpoint-archetype \
-DarchetypeVersion=1.6.0-SNAPSHOT \
-DarchetypeCatalog=local \
...Check that the pom.xml contains the <distributionManagement> section, and that the matching repository id is configured in the global ~/.m2/settings.xml file as <servers><server>. Then upload your artifact by running:
mvn deploy