Как проверить доступ границ проекта в проектах Maven - PullRequest
3 голосов
/ 05 января 2010

У меня есть набор проектов Maven, и я хотел бы определить правила доступа.
Например, проекты Database и Cache могут быть доступны только для проекта DataLayer, но не для проекта UiLayer. Я говорю о проектах maven, но проверка доступа на уровне пакетов также может сработать, если ее легко интегрировать в проекты maven.

Я смотрел на Macker , который имеет хороший набор функций, таких как контроль доступа к ч / б Java-пакетам, проверка стиля и т. Д., Но мне было трудно связать его с набором maven проекты.

Есть macker-maven-plugin , который все еще находится в стадии разработки, и я смог заставить его работать на меня, но я боюсь, что он не будет служить мне хорошо.
Этот плагин выполняет проверки всех классов проекта.
Это означает, что теперь мне нужно иметь macker-rules.xml, определяющий правила доступа в каждом проекте maven, чтобы убедиться, что правила не нарушены. Это похоже на кошмар обслуживания.

Итак - я что-то упустил с использованием macker-maven-plugin? Возможно, я не правильно его использую.

У меня нет опыта работы с JDepend, но из краткого прочтения он выглядит как тонкая версия macker. Существует плагин jDepend maven , но его функциональность - это просто генерация отчетов об использовании и статистике, но мне действительно нужно что-то еще, проверка доступа, которая завершается неудачно при сборке.

Может ли кто-нибудь предложить лучшую альтернативу для проверок доступа к проектам или пакетов проверок для проектов maven?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 января 2010

Я думаю, что вы ищете запрещенные зависимости от maven-forcecer-plugin .

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.0</version>
    <executions>
      <execution>
        <id>enforce-banned-dependencies</id>
        <goals>
          <goal>enforce</goal>
        </goals>
        <configuration>
          <rules>
            <bannedDependencies>
              <excludes>
                <exclude>org.apache.maven</exclude>
                <exclude>org.apache.maven:badArtifact</exclude>
                <exclude>*:badArtifact</exclude>
              </excludes>
              <includes>
                <!--only 1.0 of badArtifact is allowed-->
                <include>org.apache.maven:badArtifact:1.0</include>
              </includes>
            </bannedDependencies>
          </rules>
          <fail>true</fail>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>
0 голосов
/ 05 января 2010

Если вы разделите свой проект Maven на подпроекты и правильно структурируете API, возможно, вы сможете реализовать ограничения доступа как побочный эффект зависимостей подпроекта.

...