BaNg@taobao

          Just Do It!

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks

          Maven有自己的一套約定目錄規則,與MyEclipse的有沖突,其實結合也很簡單,因為MyEclipse的目錄可配置。

          1 用maven創建一個web project
           mvn archetype:create   -DgroupId=com.lifesting  -DartifactId=test  -DarchetypeArtifactId=maven-archetype-webapp

          2 補全某些目錄
           cd test\src
           mkdir main\java
           mkdir test\resources
           mkdir test\java

          3 修改pom文件,在生成eclipse項目的時候maven eclipse plugin使用此配置
            在project/build下面插入
          <plugins> 
              
          <plugin> 
                
          <groupId>org.apache.maven.plugins</groupId> 
                
          <artifactId>maven-eclipse-plugin</artifactId> 
                
          <configuration> 
                   
          <projectnatures> 
                      
          <java.lang.String>com.genuitec.eclipse.j2eedt.core.webnature</java.lang.String> 
                      
          <java.lang.String>org.eclipse.jdt.core.javanature</java.lang.String> 
                    
          </projectnatures> 
                    
          <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> 
                
          </configuration> 
              
          </plugin> 
            
          </plugins> 
          project nature是eclipse開發中一個概念,比如加入javanature就表示此項目是一個java project,會綁定一個java builder用來編譯java文件,而webnature告訴MyEclipse這是一個MyEclipse web項目,更多MyEclipse projectNature:
          webservice-- com.genuitec.eclipse.ws.xfire.wsnature
          facelet-- com.genuitec.eclipse.jsf.faceletsnature
          jsf--com.genuitec.eclipse.jsf.jsfnature
          struts--com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature
          或者在插件里面使用這個方法:
          IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("test");
                  
          try {
                      String[] natures 
          = project.getDescription().getNatureIds();
                      
          for (String nature :natures)
                          System.out.println(nature);
                  }
           catch (CoreException e) {
                      e.printStackTrace();
                  }
          可以將項目所有的nature打印出來

          outputDirectory主要是告訴maven eclipse plugin編譯輸出在什么位置,默認在target/classes下面,web項目不同,應該放在src/main/webapp/WEB-INF/classes 才能夠被MyEclipse package到服務器。

          4 在命令行test目錄下運行mvn eclipse:eclipse生成Eclipse項目。

          5 在MyEclipse中將test project 導入到workspace,MyEclipse通過projectNature識別到test是一個MyEclipse web project,它會在項目目錄下生成一個.mymetadata文件。再關閉MyEclipse,這么做的原因是因為默認MyEclipse的webRoot不可配置。

          6 修改MyEclipse下面的.mymetadata文件,比如我的test項目文件內容為
          <?xml version="1.0" encoding="UTF-8"?>
          <project-module
            
          type="WEB"
            name
          ="test"
            id
          ="myeclipse.1207117121765"
            j2ee-spec
          ="1.4"
            archive
          ="test.war">
            
          <attributes>
              
          <attribute name="webrootdir" value="/WebRoot" />
            
          </attributes>
          </project-module>
          增加一行,修改一行為:
          <?xml version="1.0" encoding="UTF-8"?>
          <project-module
            
          type="WEB"
            name
          ="test"
            id
          ="myeclipse.1207117121765"
            context-root
          ="/test""
            j2ee-spec
          ="1.4"
            archive
          ="test.war">
            
          <attributes>
              
          <attribute name="webrootdir" value="/src/main/webapp" />
            
          </attributes>
          </project-module>

          可以看到,增加的一行 context-root="/test" 表示web的上下文為test.
          修改的一行為webrootdir的值,將/WebRoot改為maven默認的web項目source目錄/src/main/webapp。

          7 重新啟動MyEclipse,一切搞定了,調試開發兩不誤。

          參考資料
          http://www.myeclipseide.com/PNphpBB2-viewtopic-t-17416.html
          posted on 2008-04-02 14:32 Always BaNg. 閱讀(5728) 評論(0)  編輯  收藏 所屬分類: Eclipse 、網摘備用
          主站蜘蛛池模板: 安塞县| 师宗县| 聊城市| 彭阳县| 麟游县| 天等县| 缙云县| 清原| 新沂市| 万源市| 乌恰县| 平阳县| 栖霞市| 伊川县| 富源县| 新闻| 霍林郭勒市| 宜良县| 合阳县| 绵竹市| 榕江县| 钦州市| 阳东县| 修武县| 九龙坡区| 社旗县| 呼和浩特市| 青浦区| 渭南市| 舒城县| 霍城县| 海淀区| 菏泽市| 左云县| 松滋市| 萝北县| 鹤壁市| 余庆县| 永寿县| 新余市| 河源市|