Grails классы плагинов acegi не добавлены в maven - PullRequest
0 голосов
/ 15 января 2010

Я создал проект grails 1.2.0 с использованием плагина acegi 0.5.2 , который работает очень хорошо.

Чтобы интегрировать проект в инфраструктуру построения наших компаний, мне нужно построить его через maven.Поэтому я преобразовал его в проект maven, используя интеграцию grails maven , которая тоже работала довольно хорошо.

Существует одна проблема: у меня есть класс Java CustomUserDetails, который реализует интерфейс GrailsUser .Когда maven пытается скомпилировать проект, он не может найти класс интерфейса GrailsUser , который является частью плагина acegi .

Я что-то упустил или есть проблемас интеграцией Grails Maven, что приводит к отсутствию классов плагинов в classpath?

ОБНОВЛЕНИЕ: вот pom.xml моего проекта:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.troii</groupId>
  <artifactId>testapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>org.grails</groupId>
      <artifactId>grails-crud</artifactId>
      <version>1.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.grails</groupId>
      <artifactId>grails-gorm</artifactId>
      <version>1.2.0</version>
    </dependency>

    <!-- Grails defaults to Ehache for the second-level Hibernate cache. -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-ehcache</artifactId>
      <version>3.3.1.GA</version>
    </dependency>
    <dependency>
      <groupId>javassist</groupId>
      <artifactId>javassist</artifactId>
      <version>3.11.0.GA</version>
    </dependency>

    <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache-core</artifactId>
      <version>1.7.1</version>
      <exclusions>
          <exclusion>
              <artifactId>jms</artifactId>
          </exclusion>
          <exclusion>
              <artifactId>servlet-api</artifactId>
          </exclusion>

          <!-- We have JCL-over-SLF4J instead. -->
          <exclusion>
              <artifactId>commons-logging</artifactId>
          </exclusion>
      </exclusions>
    </dependency>

    <!-- For ease of development and testing, we include the HSQLDB database. -->
    <dependency>
      <groupId>hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>1.8.0.10</version>
    </dependency>

    <!-- Use Log4J for logging. This artifact also pulls in the Log4J JAR. -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.5.8</version>
      <scope>runtime</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
  </dependencies>

  <repositories>
    <!-- Required to get hold of JTA -->
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>Codehaus Snapshots</id>
      <url>http://snapshots.repository.codehaus.org</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>Codehaus Snapshots</id>
      <url>http://snapshots.repository.codehaus.org</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <pluginManagement />
    <plugins>
      <plugin>
        <groupId>org.grails</groupId>
        <artifactId>grails-maven-plugin</artifactId>
        <version>1.2.0</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <goals>
              <goal>init</goal>
              <goal>maven-clean</goal>
              <goal>validate</goal>
              <goal>config-directories</goal>
              <goal>maven-compile</goal>
              <goal>maven-test</goal>
              <goal>maven-war</goal>
              <goal>maven-functional-test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>tools</id>
      <activation>
        <property>
          <name>java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun</groupId>
          <artifactId>tools</artifactId>
          <version>${java.version}</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>

1 Ответ

0 голосов
/ 15 января 2010

Я думаю, что вы ожидаете, что путь к классу плагина будет доступен при компиляции исходного кода проекта. Плагины имеют собственный загрузчик классов, поэтому ваши классы не увидят там ничего.

Вместо этого определите зависимость проекта от библиотеки, которая содержит интерфейс GrailsUser, и убедитесь, что область этой зависимости компилируется (по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...