Eclipse,WebSphere7.0,Maven:AspectJ在热部署期间不编织代码

时间:2013-03-26 14:04:55

标签: websphere maven-3 aspectj myeclipse

我的系统信息:

IDE:    Eclipse Blue 10.0, 
Server: Websphere 7.0
Build Management Tool: Maven 3.0

我使用以下配置在我的Maven项目中执行编译时编织:

<properties>    
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
    </properties>
    <build>
        <plugins>
            <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>
                        </execution>
                </executions>                
                <configuration>
                    <aspectLibraries>
                        <aspectLibrary>
                            <groupId>com.xxx.logger</groupId>
                            <artifactId>my-aspect-logger</artifactId>
                        </aspectLibrary>
                    </aspectLibraries>                  
                    <showWeaveInfo>true</showWeaveInfo>
                    <outxml>true</outxml>                   
                    <Xlint>warning</Xlint>
                    <verbose>true</verbose>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>                
            </plugin>            
         </plugins>
     </build>

在开发过程中,我使用以下路径在Eclipse中以爆炸模式添加我的EAR文件:

Windows > Show View > Servers > WebSphere 7 > Right Click > Add Deployment 

我面临一个问题,即每当我更改我的java类时,它们都会在服务器中进行编译和热部署。但是,他们没有重新编织。但是如果我删除EAR,从命令提示符构建我的项目并重新部署它然后它可以正常工作。

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我不熟悉AspectJ,但MyEclipse没有执行maven目标来构建和部署项目(虽然你可以添加构建器,可以在外部调用maven - 注意Maven Project Builder不执行Maven目标),所以你的pom中指定的处理不会自动执行,但很明显,你可以从Run As菜单项运行maven目标。因此,将使用配置的JRE重新编译已更改的Java类并重新部署。不会运行pom中指定的任何其他处理。但是,您说删除部署然后重新部署实际上是有效的,所以如果您在重新部署之前没有执行maven构建,我不确定如何完成重新编织。