小编jan*_*ink的帖子

Maven - 如何在清洁阶段删除文件夹的内容?

在我的项目中,我有一个名为的文件夹war.它最初是空的,并且受版本控制.该文件夹在其package阶段由Maven填充,Eclipse的WST插件从该文件夹部署Web应用程序.

我想要的是warclean阶段中删除文件夹的内容,但不删除文件夹本身.我怎么做?到目前为止,我知道如何删除整个war文件夹:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <followSymLinks>false</followSymLinks>
        <filesets>
            <fileset>
                <directory>${basedir}/war</directory>
            </fileset>
        </filesets>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

如何仅删除war文件夹的内容而不删除文件夹本身?我知道通过添加一些现有的排除项,该文件夹不会被删除.但是如何一般只删除文件夹的内容?

maven-2 maven

39
推荐指数
2
解决办法
3万
查看次数

Java - 注册所有使用@MyAnnotation注释的类

我有一个注释@MyAnnotation,我可以用它来注释任何类型(类).然后我有一个被调用的类AnnotatedClassRegister,我希望它注册所有注释的类,@MyAnnotation以便我以后可以访问它们.我想在创建AnnotatedClassRegister可能的情况下自动注册这些类,最重要的是在注释类被实例化之前.

我有AspectJ和Guice供我使用.到目前为止我提出的唯一解决方案是使用Guice将一个方面的单例实例注入AnnotatedClassRegister到一个方面,该方法搜索所有注释的类,@MyAnnotation并添加在其构造函数中注册此类所需的代码.这个解决方案的缺点是我需要实例化每个带注释的类,以便实际运行AOP添加的代码,因此我不能利用这些类的延迟实例化.

我解决方案的简化伪代码示例:

// This is the class where annotated types are registered
public class AnnotatedClassRegister {
    public void registerClass(Class<?> clz) {
        ...
    }
}

// This is the aspect which adds registration code to constructors of annotated
// classes
public aspect AutomaticRegistrationAspect {

    @Inject
    AnnotatedClassRegister register;

    pointcutWhichPicksConstructorsOfAnnotatedClasses(Object annotatedType) : 
            execution(/* Pointcut definition */) && args(this)

    after(Object annotatedType) :
            pointcutWhichPicksConstructorsOfAnnotatedClasses(annotatedType) {

        // registering the class of object whose …
Run Code Online (Sandbox Code Playgroud)

java reflection aop annotations guice

6
推荐指数
1
解决办法
8904
查看次数

Eclipse - JUnit/m2eclipse类路径问题

我正在使用Maven构建一个GWT应用程序来进行依赖项解析,当我尝试运行JUnit测试时,我遇到了一个奇怪的问题.我有一个标准的maven式结构的源和测试:

/src/main/java
/src/test/java
Run Code Online (Sandbox Code Playgroud)

如果我将所有源文件夹的Java Build Bath> Default输出文件夹设置为:

/MyProject/target/classes
Run Code Online (Sandbox Code Playgroud)

那没有问题.但是,GWT插件需要源驻留在:

/MyProject/src/main/webapp/WEB-INF/classes
Run Code Online (Sandbox Code Playgroud)

为了能够在开发模式下从这个目录部署,否则它会抱怨.但是,如果我将所有源文件夹的输出目录设置为此目录,则测试将失败并出现ClassNotFoundException.

如果我手动将目录添加/MyProject/src/main/webapp/WEB-INF/classes到JUnit启动程序的类路径中,这可以解决,因此,显然,编译的.class文件丢失,因此我得到的异常.但是,如果我将目录定义为默认输出目录,为什么eclipse不会自动将目录添加到类路径中?

我怀疑m2eclipse插件会覆盖默认输出文件夹设置,可以吗?因为如果我将输出文件夹设置为/src/main/javato /target/classessrc/test/javato /target/test-classes,一切正常.但是如果在这两个输出目录之外设置了任何输出目录,则它不起作用.

我很感激任何想法,谢谢!

eclipse gwt m2eclipse

0
推荐指数
1
解决办法
1632
查看次数

标签 统计

annotations ×1

aop ×1

eclipse ×1

guice ×1

gwt ×1

java ×1

m2eclipse ×1

maven ×1

maven-2 ×1

reflection ×1