分离你的代码

GeoNetwork是使用Maven构建的。这意味着,源代码中有几个文件夹,每个文件夹都是不同的Maven项目,可以分别构建。

../../../_images/listprojects.png

创建自己的项目

使用geonnetwork并在稍后轻松升级的最佳方法是将您自己的Maven项目添加到Maven构建堆栈中,这样geonnetwork代码就不会改变,您的更改也不会耦合。

为此,请转到源代码的根文件夹并创建一个新文件夹。这可以在GNU/Linux终端上使用以下命令完成:

cd core-geonetwork
mkdir custom

然后我们必须告诉Maven这是一个可以构建的新项目。所以我们添加了一个名为pom.xml文件在此“自定义”文件夹中添加以下内容:

添加项目

然后您应该将它添加到Maven将自动构建的项目列表中。在源代码的根文件夹中,编辑该文件pom.xml文件并添加您自己的项目:

<modules>
  <module>schemas-test</module>
  <module>web-ui</module>
  <module>custom</module>
  <module>web-ui-docs</module>
  <module>web-client</module>
  <module>web</module>
</modules>

我们的想法是,不仅要构建项目,还要将其添加到正在生成的war文件中。为此,我们编辑文件web/pom.xml文件并将我们的项目作为新的依赖项添加到标记依赖项中:

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>custom</artifactId>
  <version>${project.version}</version>
</dependency>

在同一个文件上,我们还应该将resources文件夹添加到构建中(如果要修改UI,我们将在本教程中进行修改):

<resource>
  <directory>${project.basedir}/../custom/src/main/resources</directory>
</resource>
<resourcesAsCSV>
${project.basedir}/src/main/webapp,
${rootProjectDir}/web-ui/src/main/resources/,
${rootProjectDir}/custom/src/main/resources/,
${build.webapp.resources}
</resourcesAsCSV>

现在,如果我们建立地理网络,它也将建立和添加我们的项目。