<!--
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->

<project default="all" xmlns:m="jelly:maven">

  <goal name="build-sub-module">
     <attainGoal name="nar:compile" />
  </goal>
  <goal name="compile-tests">
     <attainGoal name="nar:compile-tests" />
  </goal>
  <goal name="all" prereqs="build-sub-module,compile-tests" />

</project>
