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. 閱讀(5730) 評論(0)  編輯  收藏 所屬分類: Eclipse網摘備用
          主站蜘蛛池模板: 克山县| 天水市| 繁昌县| 西青区| 包头市| 樟树市| 临洮县| 镇赉县| 台北县| 长乐市| 雅安市| 敦化市| 揭东县| 崇州市| 灵川县| 班戈县| 错那县| 伊宁市| 美姑县| 宜兰县| 台北县| 玉林市| 社旗县| 原平市| 称多县| 枣阳市| 木兰县| 中西区| 临朐县| 灵宝市| 乌拉特后旗| 迁西县| 汝州市| 长岛县| 中江县| 延庆县| 成安县| 张家港市| 常宁市| 太白县| 昭通市|