将src / main / aspect作为源文件夹添加到eclipse maven项目中

时间:2012-05-21 13:50:14

标签: eclipse maven import aspectj

我希望能够配置pom.xml,以便在将其导入eclipse时将src/main/aspect指定为eclipse源文件夹。

目前,导入会创建默认的源文件夹,但这就是全部。

应该做什么?

由于

编辑1

我已经配置了aspectj插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <executions> 
    <execution>
        <goals>
            <goal>compile</goal>    
            <goal>test-compile</goal>                           
        </goals>
         <configuration>
            <source>${project.build.source}</source>
            <target>${project.build.target}</target>
            <aspectDirectory>src/main/aspect</aspectDirectory>
            <testAspectDirectory>src/test/aspect</testAspectDirectory>
        </configuration>
    </execution>
   </executions>
</plugin>

编辑2

我已经配置了m2e插件:

<plugin>
    <groupId>org.eclipse.m2e</groupId>
    <artifactId>lifecycle-mapping</artifactId>
    <version>1.0.0</version>
    <configuration>
        <lifecycleMappingMetadata>
            <pluginExecutions>
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>
                            org.codehaus.mojo
                        </groupId>
                        <artifactId>
                            aspectj-maven-plugin
                        </artifactId>
                        <versionRange>
                            [1.4,)
                        </versionRange>
                        <goals>
                            <goal>test-compile</goal>
                            <goal>compile</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action>
                        <ignore></ignore>
                    </action>
                </pluginExecution>
            </pluginExecutions>
        </lifecycleMappingMetadata>
    </configuration>
</plugin>

3 个答案:

答案 0 :(得分:0)

你不应该配置defaults of the plugin,因为它已经定义了src / test / aspect和src / main / aspect,并且没有必要配置补充编译等的东西。

此外,eclipse的问题可能基于缺少mapping for your m2e plugin,这意味着将以下内容添加到您的构建中:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <versionRange>[1.4,)</versionRange>
                <goals>
                  <goal>compile</goal>
                  <goal>test-compile</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute />
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

这可能会导致Eclipse中出现问题,导致无法正确导入源文件夹。

答案 1 :(得分:0)

我相信source应该是java版本,而不是目录。 target也是如此。 sources允许您指定源目录,文档说如果没有指定,将使用当前项目的java源代码 - 当前配置的项目只有一个。

我会尝试列出sources参数中的目录,如果这不起作用,我会删除sources并尝试build-helper:add-source。我不确定build-helper-maven-plugin是否有m2e连接器,所以你可能需要为所提到的khmarbaise添加类似的映射。

答案 2 :(得分:0)

我认为它不会被Eclipse添加为源文件夹。您可以在Java Build Path > Source中自行添加。

这不是必需的:然后你需要安装AJDT plugin并将项目转换为AspectJ Project,否则.aj文件将充满Eclipse抱怨的错误。错误不会影响maven编译。

根据我的经验,识别或不识别来源不会影响maven编译.aj

下的src/main/aspect个文件

aspectDirectoryaspectTestDirectory都有默认值。如果与默认值相同,则不需要它们。

下面是我的pom配置(没有尝试test-compile),它可以工作:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <!--<Xlint>ignore</Xlint>--><!--bypass xlint warnings -->
    </configuration>
    <dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
        <version>1.7.2</version>
    </dependency>
    </dependencies>
    <executions>
    <execution>
        <goals>
            <goal>compile</goal>
        </goals>
    </execution>
    </executions>
</plugin>