Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Maven上使用不带Spring的AspectJ_Java_Spring_Maven_Aspectj_Aspectj Maven Plugin - Fatal编程技术网

Java 在Maven上使用不带Spring的AspectJ

Java 在Maven上使用不带Spring的AspectJ,java,spring,maven,aspectj,aspectj-maven-plugin,Java,Spring,Maven,Aspectj,Aspectj Maven Plugin,我还是Java的初学者。我想构建一个简单的Maven项目并实现AspectJ来监控一些东西。我遵循了这个和这个,但所有的要点都是在Maven中使用Spring,这将使项目中的一些内容复杂化。你对解决这个问题有什么建议吗?我已经在pom.xml中添加了AspectJ Maven插件,但它不起作用 谢谢 这些是我想得到的示例代码 MainApp.java package tester; public class MainApp { public static void main(Stri

我还是Java的初学者。我想构建一个简单的Maven项目并实现AspectJ来监控一些东西。我遵循了这个和这个,但所有的要点都是在Maven中使用Spring,这将使项目中的一些内容复杂化。你对解决这个问题有什么建议吗?我已经在pom.xml中添加了AspectJ Maven插件,但它不起作用

谢谢

这些是我想得到的示例代码

MainApp.java

package tester;

public class MainApp {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        HelloWorld a = new HelloWorld();
        a.printHello();
    }
}
HelloWorld.java

package tester;

public class HelloWorld {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void printHello() {
        System.out.println("Spring 3 : Hello ! " + name);
    }}
TestAspect.java

package tester;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Around;


@Aspect
public class TestAspect {

//  @Pointcut("execution(* /HelloSpring/src/main/java/tester/HelloWorld.setName(..))")
//  private void testing(){
//      
//  }

    @Before("execution(* tester.HelloWorld.printHello(..))")
    public void testBefore2(){
        System.out.println("yoo2");
    }


    @Before("execution(* tester.HelloWorld.setName(String))")
    public void testBefore(){
        System.out.println("yoo");
    }

}
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>test.spring</groupId>
  <artifactId>HelloSpring</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>
  <spring.version>4.2.5.RELEASE</spring.version>
  </properties>

  <dependencies>

        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.8.7</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.8</version>
        </dependency>
  </dependencies>


  <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.8</version>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjtools</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>

        </plugins>
    </build>

</project>

4.0.0
测试弹簧
胡说八道
0.0.1-快照
4.2.5.1发布
org.springframework
弹簧芯
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
春季aop
4.2.5.1发布
org.aspectj
aspectjrt
1.8.7
org.aspectj
aspectjweaver
1.8.8
org.codehaus.mojo
aspectj maven插件
1.8
org.aspectj
aspectjtools
${aspectj.version}
maven编译器插件
${maven.compiler.plugin.version}
${java.version}
${java.version}

这里有一个更适合的pom,对我来说,它可以与当前代码一起工作

<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>test.spring</groupId>
<artifactId>HelloSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>

<properties>
    <maven.compiler.plugin.version>3.5.1</maven.compiler.plugin.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.8.7</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.8</version>
    </dependency>
</dependencies>


<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.8</version>
            <configuration>
                <complianceLevel>1.8</complianceLevel>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compiler.plugin.version}</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

    </plugins>
</build>

4.0.0
测试弹簧
胡说八道
0.0.1-快照
3.5.1
org.aspectj
aspectjrt
1.8.7
org.aspectj
aspectjweaver
1.8.8
org.codehaus.mojo
aspectj maven插件
1.8
1.8
1.8
1.8
maven编译器插件
${maven.compiler.plugin.version}
1.8
1.8

您还应该添加“执行”标签:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>${aspectj-maven-plugin.version}</version>
    <configuration>
        <complianceLevel>1.8</complianceLevel>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
    <executions>
         <execution>
             <phase>process-sources</phase>
             <goals>
                 <goal>compile</goal>
                 <goal>test-compile</goal>
             </goals>
         </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven.compiler.plugin.version}</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

org.codehaus.mojo
aspectj maven插件
${aspectj maven plugin.version}
1.8
1.8
1.8
过程源
编译
测试编译
org.apache.maven.plugins
maven编译器插件
${maven.compiler.plugin.version}
1.8
1.8

我尝试使用您的POM配置,但仍然不起作用。你知道为什么吗?您认为我需要使用右键单击-配置-转换为AspectJ项目将普通Maven项目转换为Maven AspectJ项目吗?您使用的是什么IDE?您是否尝试过仅通过mvn clean install通过控制台运行它?我在使用IntelliJ,我在控制台和IntelliJ上都试过了,我可以用我的POM运行你的代码。我在使用Eclipse Mars,没有在控制台上试过,因为它有一些问题。但我已经尝试使用干净的安装参数构建它,但仍然没有捕获AspectJ。