Не в состоянии интегрировать AspectJ с Maven - PullRequest
1 голос
/ 09 сентября 2011

Я два дня ударился головой, чтобы объединить аспектj с maven, но ничего не вышло. Я пишу простую программу с двумя советами (которая отлично работает в Eclipse, так что я уверен, что это не ошибка на стороне кода).

Я недавно начал использовать maven для построения проекта. Не могу понять, почему я не могу запустить компилятор aspectj.

Во время компиляции через maven - я получаю только файл класса для Java без переплетения. Файл .aj не скомпилирован.

Пожалуйста, помогите !!!!

файл первого аспекта - ExceptionAspects.aj

* * 1010

Исходный файл Java HelloWorldExclude.java пакет com.aspectSample;

    import java.sql.SQLException;

    public class HelloWorldExclude {

 private void FoulIntro(String message, String name) throws SQLException
    {
        throw new SQLException("WriteSomething");
    }

 public void GiveMeFoulIntro(String message, String name)
    {
        try
        {
            this.FoulIntro(message, name);

        }catch(SQLException exp)
        {
            System.out.println("catching exception");
        }
    }
}

и файл pom.xml

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.clickable.HelloWorld-Maven</groupId>
<artifactId>HelloWorldAspect-Maven</artifactId>
<version>1.0.0</version>
<name>HelloWorld Aspect</name>
<packaging>jar</packaging>
<description>Hello World Code</description>
<properties>
    <java-version>1.6</java-version>
    <org.aspectj-version>1.6.11</org.aspectj-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <goals>
                              <goal>compile</goal>                              
                        </goals>
                    </execution>
                </executions>
                <configuration> 
                <source>${java-version}</source> 
                <target>${java-version}</target> 
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.5</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>       
</dependencies>
</project>

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

В файле pom произошла глупая ошибка. Плагин aspectj был добавлен в элемент, который является просто конфигурацией всех плагинов. Это не говорит компилятору, что использовать.

Это сработало, как только я удалил плагин из этого элемента.

Спасибо Панкай

0 голосов
/ 09 сентября 2011

Несколько вещей, которые вы можете попробовать:

  • Явно укажите зависимости плагина maven-aspectj:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjrt</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
    

с версией aspectjrt и aspectjtools, соответствующей используемой вами версии aspectj.

  • Есть ли у вас какие-либо источники в папке с тестами, с папкой src / test, чтобы связать аспекты с исходными текстами тестов, вы должны будете явно указать это в плагине maven-aspectj:

                <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
    
...