<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    John Jiang

    a cup of Java, cheers!
    https://github.com/johnshajiang/blog

       :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
      131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
    Maven Weed
    學習、使用Maven的過程中,親身遇到或看到的一些問題的解決方法。Maven有不少Bug,大家使用時一定要小心。(2007.02.10最后更新)

    向本地倉庫安裝文件
        mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
    -DgeneratePom=true -DcreateChecksum=true(需要使用maven-install-plugin 2.2-SNAPSHOT)

    打包時,不在META-INF中生成maven目錄
        使用Maven打包(mvn package)時,默認地會在META-INF中生成一個目錄maven,里面是一個pom和一個屬性文件。如果不想生成這個目錄,需要在POM中進行如下配置:
    以對于一般應用程序打包,即制作jar包為例
    <build>
     
    <plugins>
       
    <plugin>
         
    <groupId>org.apache.maven.plugins</groupId>
         
    <artifactId>maven-jar-plugin</artifactId>
         
    <configuration>
           
    <archive>
             
    <addMavenDescriptor>false</addMavenDescriptor>
           
    </archive>
         
    </configuration>
       
    </plugin>
     
    </plugins>
    </build>
    如果你在打jar包(mvn package)時,報如下錯誤:
    [INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-jar-plugin:2.0
    Cause: Cannot find setter nor field in org.apache.maven.archiver.MavenArchiveConfiguration  for 'addMavenDescriptor' 
    這是由于maven-jar-plugin的版本不夠高(很可能是2.0版本),需要升級到最新的2.1版本。運行命令mvn -U package,會先下載最新版本,再執行打包操作。
        類似的,對于制作war,ear包,只需要將artifactId換成對應的plugin(
    maven-war-plugin , maven-ear-plugin )就可以了。

    Javadoc中文亂碼
        中文操作系統中,JDK1.5.0的Javadoc自動默認支持中文,而且頁面中的條目名也都默認為中文顯示(在之前的JDK中,這些條目名都默認為英文)。
    如是在這種情況下使用命令mvn javadoc:javadoc生成Javadoc,則這些條目名將成為亂碼。
        解決方法:讓javadoc插件使用UTF16或Unicode字符集。具體配置的形式如下:
    <build>
     
    <plugins>
       
    <plugin>
          
    <groupId>org.apache.maven.plugins</groupId>
          
    <artifactId>maven-javadoc-plugin</artifactId>
          
    <configuration>
            
    <charset>UTF16</charset>
          
    </configuration>
        
    </plugin>
     
    </plugins>
    </build>

    Scope
    Scope表示了某個依賴關系的適用范圍(作用域),共有5個scope。
    compile: 默認的適用范圍,表示該依賴關系要應用于所有的classpath。
    provided: 該適用范圍非常像compile適用范圍。但它表示該依賴關系已經由JDK或某個容量提供,如javax.servlet。
    runtime:表示該依賴關系不用于編譯階段,而只使用于運行時階段,如apache jakarta commons。
    test:表示該依賴關系并不用于實際的應用程序本身,而是該應用的測試程序的編譯與運行,如junit。
    system:該依賴關系類似于provided,但必須顯示地表示是哪一個容器提供了這個artifact。無法在倉庫中找到該artifact。
    注意:
    [1]具有compile或runtime適用范圍的依賴關系中的jar文件,制作war文件時將會被放入WEB-INF/lib目錄中。
    [2]不推薦使用system適用范圍。

    將mvn.bat配置為Eclipse外部工具
    為了能夠在Eclipse環境中運行mvn.bat,需要將它配置為一個外部工具(external tool)。在我的Eclipse Weed(配置外部工具)一文中已經提到了如何配置Eclipse External Tools(可先參見該文)。本主題將具體講述如何將mvn.bat的package Build周期短語配置為外部工具。
    [1]主菜單Run-->External Tools-->External Tools...
    [2]先選中Program項,再點擊左上角的New launch configuration按鈕
    [3]Name文本框中輸入該外部工具的名稱“MvnPackage”
    [4]通過Browser File System...按鈕,向Location文本框中輸入mvn.bat文件的絕對路徑
    [5]通過Variables...按鈕,選擇project_loc,將向Working Directory文本框中輸入${project_loc}
    [6]在Augments文本域中輸入package
    這樣當你選中一個pom.xml文件后,再運行該外部工具,就相當于對該POM文件文件執行mvn package命令。

    制作war文件時,過濾文件
    使用maven-war-plugin制作war文件時,它會先將所有可能用于制作war的內容放入target/artifactId-version目錄(標準目錄結構)下,然后再將這些文件進行打包。這樣就有兩種方法進行文件過濾:[1]使期望被過濾的文件一開始就不被放入
    target/artifactId-version目錄,即使它成為不可能的文件;[2]在制作war文件時,不將期望被過濾的文件加入包中。
    [1]實現第一種方法,要對dependency進行配置。將不希望加入包的artifact放入exclusion參數中,如下腳本所示:
    <dependency>
        
    <groupId>commons-configuration</groupId>
        
    <artifactId>commons-configuration</artifactId>
        
    <exclusions>
            
    <exclusion>
                
    <groupId>dom4j</groupId>
                
    <artifactId>dom4j</artifactId>
            
    </exclusion>
        
    </exclusions>
    </dependency>
    [2]實現第二種方法,要對maven-war-plugin進行配置,將
    不希望加入包的資源文件(不再稱之為artifact)放入warSourceExcludes參數中,如下腳本所示:
    <build>
        
    <plugins>
            
    <plugin>
                
    <groupId>org.apache.maven.plugins</groupId>
                
    <artifactId>maven-war-plugin</artifactId>
                
    <version>2.0.1</version>
                
    <configuration>
                    
    <warSourceExcludes>WEB-INF/lib/dom4j-1.4.jar</warSourceExcludes>
                
    </configuration>
            
    </plugin>
        
    </plugins>
    </build>
    注意:上述方法都不僅僅是過濾掉dom4j的jar文件,它還會過濾掉dom4j所依賴的其它文件(artifact)。

    當加載插件時拋NullPointerException
    如果倉庫中有某個插件的jar文件有問題,則會拋出這樣的異常。遇到這樣的問題時,必須將這個有問題的插件清除。
    可以在執行參數中加上-X(如mvn -X compile)來獲得加載插件的過程,從中可能會發現問題插件。如果還不行,則使用一個新的倉庫,再次執行工程。

    Install或Deploy源代碼
    <project>
        <build>
            <plugins>
                <plugin>
                    <inherited>true</inherited>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    使用如上的腳本即可,但該腳本只能針對jar文件,而不能針對war或ear...文件。maven-source-plugin并沒有提供install或deploy Web工程源代碼的goal。

    在命令行中設置本地倉庫
    在使用Maven2命令(mvn)時,可以設置本地倉庫的路徑,該路徑將會替代settings.xml中設置的本地倉庫路徑。
    如命令,mvn -Dmaven.repo.local=Another_Local_Repo package
    注:在Maven1中還可以通過-Dmaven.repo.remote設置遠程倉庫,但目前在Maven2中還不行。

    在Maven發行包中找到Super POM文件
    所有的POM都默認繼承Super POM,該POM定義了Maven標準目錄結構。但在Maven的發行包中,這個Super POM是存放在了哪里呢?
    這個POM就存放在maven-project的jar文件中。在筆者的機器中,該Super POM的位置是:
    Maven_Home/lib/maven-project-2.0.4.jar/org/apache/maven/project/pom-4.0.0.xml

    構建Maven遠程倉庫
    構建Maven遠程倉庫的方法很多,也很簡單。常用的Web服務器(Apache,JBoss,Tomcat,...)都可以用于構建Maven遠程倉庫;而發布artifact時,也可以使用多種協議(FTP,SFTP,SSH,...)。
    此處使用RedHat AS 4.0 + Apache2.0.59,并應用SSH協議向遠程倉庫發布artifact。
    [1]在Apache的DocumnetRoot中新建目錄maven2/repo,此處該目錄的絕對路徑為
    /usr/local/apache2/htdocs/maven2/repo
    [2]在本地Maven的settings.xml文件中設置Server,語句的形式如下:
    <servers>
      <server>
        <id>myrepo</id>
        <username>myuser</username>
        <password>mypasswd</password>
      </server>
    </servers>
    myuser/mypasswd是登錄遠程Linux系統時使用的用戶名/密碼。
    [3]在本地工程的pom.xml中進行如下形式的設置:
    <distributionManagement>
        <repository>
            <id>myrepo</id>
            <url>scp://Host/usr/local/apache2/htdocs/maven2/repo</url>
        </repository>
    </distributionManagement>
    此處id必須與前面設置的server中的id一致;scp是使用SSH協議的文件傳輸命令;Host是遠程Linux服務器的IP地址或域名;/usr/local/apache2/htdocs/maven2/repo就是Maven倉庫在遠程服務器中的絕對路徑。
    [4]在本地中使用命令mvn deploy發布artifact到遠程倉庫中。
    [5]
    啟動Apache服務器, 通過地址http://Host/maven2/repo,就可以看到剛剛發布artifact了。

    updating...
    posted on 2006-09-11 13:37 John Jiang 閱讀(6661) 評論(34)  編輯  收藏 所屬分類: Maven

    評論

    # re: Maven + Continuum Weed 2006-12-04 14:41 zhengoodman
    不好意思,弱弱的問一下。我想把web程序部署到tomcat下,要用到什么插件,如何才能下載這個插件?
    我看http://mirrors.ibiblio.org/pub/mirrors/maven2/plugins/org/apache/maven/plugins/maven-deploy-plugin/2.0-alpha-3/
    下面有maven-deploy-plugin-2.0-alpha-3.jar包。
    http://mirrors.ibiblio.org/pub/mirrors/maven2/maven/maven-deploy-plugin/下面有maven-deploy-plugin.jar的1.3版本。不知應該下載哪個?pom文件應該怎么寫?把他自帶的pom文件的內容拷過來就行嗎?  回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-04 20:24 Sha Jiang
    這個deploy插件是向Maven遠程共享倉庫發布artifact時使用的,與Web/App Server沒什么特別的關系。
    再說使用插件時,只需要在pom.xml中進行聲明,不需要自己直接下載。Maven會自動下載Central Repository中存有的artifact(包括它們的pom.xml文件)。

    就如我的另一篇文章
    http://www.tkk7.com/jiangshachina/archive/2006/11/24/83331.html
    中所說的,想向JBoss部署Web應用,就需要使用針對JBoss的Maven插件。

    maven-tomcat-plugin也許是你想要的
    http://www.codeczar.com/products/maven-tomcat-plugin/
    但該插件似乎不在Maven中央倉庫中,但你可以在它的主頁中直接下載。
    Good Luck!

      回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-05 08:46 zhengoodman
    我自己也沒搞清楚。昨天問完后,看資料才知道deploy是干什么用的。有沒有好的講maven2的教程或網站,推薦一下啊。
    你寫的4篇關于maven的文章我都看過了。有的還看了好幾遍。哈哈。
    以后還請多多關照啊。  回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-06 11:23 Sha Jiang
    我的關于Maven的文章其實還比較簡單,上次說的一篇較復雜的文章也一直沒時間寫完。唉~~~
    不過,本周就準備寫完,哈哈~~~

    關于Maven2的好網站?
    只能是官方網站了,哈哈
    其實更好的地方是它的官方Mail List。你可以加入,然后在里面提問。
    我就是這樣的,不懂就問嘛。老外還是很熱心的,確實獲益良多。

    關于Maven2的好書?
    不得不推薦一下《Better Build with Maven》
    這本書是免費的,網上應該早就傳開了。
    它的官方獲取地址:http://www.mergere.com/m2book_download.jsp
    也可以下載到書中的源代碼,非常不錯 :D
      回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-07 10:21 zhengoodman
    非常感謝,你真熱心。  回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-07 10:32 zhengoodman
    不過你給的鏈接我訪問不了啊,連http://www.mergere.com這個網址都打不開。另外,你上次說的那個tomcat的插件我也下載不了啊(沒找到下載的地方,倒是看了一天的文檔)。你確定http://www.mergere.com現在還能訪問嗎?  回復  更多評論
      

    # re: Maven + Continuum Weed 2006-12-09 12:59 Sha Jiang
    > 你確定http://www.mergere.com現在還能訪問嗎
    我訪問mergere的站點是沒問題的。

    > 你上次說的那個tomcat的插件我也下載不了?。]找到下載的地方,倒是看了一天的文檔)。
    上次我只是簡單的搜索了一下,沒嘗試那個插件。
    今天在官方的Mail List中查了一下,發現那個插件已經更名,并且放在了codehause的mojo項目中了。
    http://mojo.codehaus.org/tomcat-maven-plugin/introduction.html
      回復  更多評論
      

    # re: Maven Weed 2007-01-08 09:42 fy
    請教個問題,我的web項目下有webapp和config兩個目錄,我想把config中的一個文件,打到webapp.war包的/WEB-INF/下,怎么辦呢?  回復  更多評論
      

    # re: Maven Weed 2007-01-08 17:52 Sha Jiang
    我以前也考慮過同樣的問題。
    但我這個人比較懶,就直接把這個文件放在webapp/WEB-INF目錄中 ^_^
    那么制作war文件后,它自然就會在正確的位置了。

    應該可以使用maven-assembly-plugin達到相同的目的。
    http://maven.apache.org/plugins/maven-assembly-plugin/  回復  更多評論
      

    # re: Maven Weed 2007-01-16 17:18 fy
    請教個問題,我用的是:eclipse:3.2.1,maven:2.0.4,org.maven.ide.eclipse:0.0.9.但是在eclipse中執行compile總是錯:
    INFO] ----------------------------------------------------------------------------
    [INFO] Building maven_itms Maven Webapp
    [INFO] task-segment: [compile]
    [INFO] ----------------------------------------------------------------------------
    [INFO] resources:resources
    [INFO] Using default encoding to copy filtered resources.
    [INFO] compiler:compile
    Compiling 132 source files to D:\workspace\maven_itms\target\classes
    [ERROR] mojo-execute : compiler:compile
    Diagnosis: Compilation failure
    FATAL ERROR: Error executing Maven for a project
    [ERROR] project-execute : com.novitech.itms:maven_itms:war:1.0 ( task-segment: [compile] )
    Diagnosis: Compilation failure
    FATAL ERROR: Error executing Maven for a project
    org.apache.maven.BuildFailureException: Compilation failure
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:555)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
    at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:441)
    at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:382)
    at org.maven.ide.eclipse.Maven2Executor.main(Maven2Executor.java:68)
    Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:505)
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:111)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
    ... 8 more


    但是在cmd中就不會錯:D:\workspace\maven_itms>mvn compile
    [INFO] Scanning for projects...
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building maven_itms Maven Webapp
    [INFO] task-segment: [compile]
    [INFO] ----------------------------------------------------------------------------
    [INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:compile]
    Compiling 132 source files to D:\workspace\maven_itms\target\classes
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8 seconds
    [INFO] Finished at: Tue Jan 16 17:16:34 CST 2007
    [INFO] Final Memory: 4M/16M
    [INFO] ------------------------------------------------------------------------

    不知道該怎么辦?
      回復  更多評論
      

    # re: Maven Weed 2007-01-17 10:18 Sha Jiang
    關于你所提到的問題,我并沒遇到過。
    實際上,我沒使用Maven的Eclipse插件。
    如果你在CMD中執行命令mvn compile,沒有出現問題。那么就可能是Eclipse環境的問題。
    [1]使用什么版本的JDK
    [2]Eclipse與CMD使用的JRE是否相同?
    [3]在Eclipse中編譯Java源文件,是否沒有任何問題?設置了何種編譯器級別?

    如果沒有上述問題,你就不要使用Maven的Eclipse插件。
    而是將mvn命令直接配置為Eclipse的一個外部工具,然后使用該外部工具執行命令mvn compile。
    再看看還會出現什么情況。  回復  更多評論
      

    # re: Maven Weed 2007-01-17 11:28 fy
    我把maven設置成了外部工具,問題解決.謝謝!  回復  更多評論
      

    # re: Maven Weed 2007-01-17 12:47 Sha Jiang
    那就可能是這個Maven的Eclipse插件的問題了(至少可能是與你使用的Eclipse版本不兼容)。
    剛學習Maven時,也用過這個插件。但當時一方面對Maven不熟悉,一方面這個插件在Eclipse不能正常使用。
    后來就一直沒有再使用過任何一款Maven的Eclipse插件了。
    對于只是運行Maven命令而言,把mvn設置為Eclipse外部命令,應該是足夠用了。  回復  更多評論
      

    # re: Maven Weed 2007-01-18 09:58 fy
    Hello!
    請問,你知道maven在產生site的時候,能做成中文的嗎?我找了好久都沒看到有人提到這件事。  回復  更多評論
      

    # re: Maven Weed 2007-01-18 10:37 Sha Jiang
    這個問題我也沒考慮過。
    不過可以想像,Maven默認使用英文。而要生成中文頁面,肯定要把這些英文全部使用中文替換吧。
    做國際化的時候,不是經常使用多語言的資源文件嘛。
    但Maven可能沒提供這方面的接口 :(  回復  更多評論
      

    # re: Maven Weed 2007-04-20 14:53 Joeaniu
    maven調試的一個小tip: 不要一次定義過多的內容,從最簡單的pom.xml開始,一小塊一小塊的添加,以便定位問題。  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-19 16:52 新手
    Tests run: 128, Failures:[color="#FF0000"] 2, Errors[/color]: 0, Skipped: 0

    [color="#FF0000"][ERROR] mojo-execute : surefire:test[/color]
    Diagnosis: There are test failures.
    [color="#FF0000"]FATAL ERROR: Error executing Maven for a project[/color]
    [color="#FF0000"][ERROR] project-execute : L2Emu:l2j-gameserver:jar:1.0.0 ( task-segment: [assembly:assembly] (aggregator-style) )[/color]
    Diagnosis: There are test failures.
    [color="#FF0000"]FATAL ERROR: Error executing Maven for a project[/color]
    [color="#FF0000"][ERROR] reactor-execute : F:\L2jserver\L2Emu_GameServer[/color]
    Diagnosis: There are test failures.
    [color="#FF0000"]FATAL ERROR: Error executing Maven for a project[/color]
    [INFO] ------------------------------------------------------------------------
    [color="#FF0000"][ERROR] BUILD ERROR[/color]
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 minutes 52 seconds
    [INFO] Finished at: Wed Dec 19 08:08:25 GMT 2007
    [INFO] Final Memory: 9M/22M
    [INFO] ------------------------------------------------------------------------
    [color="#FF0000"][INFO] Error for project: Unnamed - L2Emu:l2j-gameserver:jar:1.0.0 (during org.apache.maven.plugins:maven-surefire-plugin:2.3:test)[/color]
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [ERROR] reactor-execute : F:\L2jserver\GameServer
    [color="#FF0000"]FATAL ERROR: Error executing Maven for a project[/color]
    [color="#FF0000"][INFO] BUILD ERRORS[/color]
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 minutes 52 seconds
    [INFO] Finished at: Wed Dec 19 08:08:25 GMT 2007
    [INFO] Final Memory: 9M/22M
    [INFO] ------------------------------------------------------------------------

    我要升成jar的包.但老是出錯..
    以前能用的.都沒動過什么東西.
    .就這兩天用不了
    Eclipse 我不太懂.問下這個是哪出錯了..要如何解決


      回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-19 16:55 新手
    [ERROR] mojo-execute : surefire:test
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project
    [ERROR] project-execute : L2Emu:l2j-gameserver:jar:1.0.0 ( task-segment: [assembly:assembly] (aggregator-style) )
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project
    [ERROR] reactor-execute : F:\L2jserver\L2Emu_GameServer_CT1
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 minutes 52 seconds
    [INFO] Finished at: Wed Dec 19 08:08:25 GMT 2007
    [INFO] Final Memory: 9M/22M
    [INFO] ------------------------------------------------------------------------
    [INFO] Error for project: Unnamed - L2Emu:l2j-gameserver:jar:1.0.0 (during org.apache.maven.plugins:maven-surefire-plugin:2.3:test)
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [ERROR] reactor-execute : F:\L2jserver\L2Emu_GameServer_CT1
    FATAL ERROR: Error executing Maven for a project
    [INFO] BUILD ERRORS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 minutes 52 seconds
    [INFO] Finished at: Wed Dec 19 08:08:25 GMT 2007
    [INFO] Final Memory: 9M/22M
    [INFO] ------------------------------------------------------------------------


    我要升成jar的包.但老是出錯..
    以前能用的.都沒動過什么東西.
    .就這兩天用不了
    Eclipse 我不太懂.問下這個是哪出錯了..要如何解決   回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-19 16:56 新手
    還要能關掉Maven的test 功能嗎.如果能的話.關掉后升成的jar能不能用呢  回復  更多評論
      

    # re: Maven Weed 2007-12-19 21:26 Sha Jiang
    > 還要能關掉Maven的test 功能嗎
    沒問題,完全可以不執行test,在執行的命令中加上屬性,-Dmaven.test.skip=true,即可。

    > 如果能的話.關掉后升成的jar能不能用呢
    生成artifate與是否執行test無關,所以可以放心使用。  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-19 21:29 新手
    但是我用的是pom.xml......我要如何改呢...命令部分不我不太會  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-19 21:30 新手
    還有上面那人是什錯.能告訴我 如何解決嗎.  回復  更多評論
      

    # re: Maven Weed 2007-12-20 09:24 Sha Jiang
    > 但是我用的是pom.xml......我要如何改呢...命令部分不我不太會
    pom.xml肯定是要的,但你是如何執行mvn命令的?是使用Maven的Eclipse插件?
    使用Maven,就是針對指定的pom.xml文件執行mvn命令;就如使用Ant,就是針對指定的build.xml文件執行ant命令。
    針對你的pom.xml文件,試試命令mvn -Dmaven.test.skip=true package
      回復  更多評論
      

    # re: Maven Weed 2007-12-20 09:33 Sha Jiang
    > 還有上面那人是什錯.能告訴我 如何解決嗎.
    應該是你的測試程序本身有問題,導致了test失敗。
    你先不做test,看看能不能執行成功。然后再只執行test,再分析會是什么問題。  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-20 15:49 新手
    我是用Eclipse的Maven插件直接執行pom.xml文件的.所以命令要怎么打.打在哪我不知道..你教下嗎.

    你能加我QQ嗎125789067 遠程幫我看下..都幾天了.還沒搞好.我對Eclipse和Maven都不是很熟悉.操作不來.

    pom.xml是別人編好的.以后我運行就能自動生成jar.但最近幾天不知道出什么問題.生成時一直接提示有錯.......但程序本身沒問題.我問過制作程序的人.生成部份應該沒辦法.暫時除了我之外.還沒有人反應升成不起來...  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-20 15:51 新手
    Tests run: 128, Failures: 2, Errors: 0, Skipped: 0

    [ERROR] mojo-execute : surefire:test
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project
    [ERROR] project-execute : L2Emu:l2j-gameserver:jar:1.0.0 ( task-segment: [assembly:assembly] (aggregator-style) )
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project
    [ERROR] reactor-execute : F:\L2jserver\L2Emu_GameServer
    Diagnosis: There are test failures.
    FATAL ERROR: Error executing Maven for a project


    提示有兩個錯.但就是不知道是哪錯了.東西太多.看不到哪出錯  回復  更多評論
      

    # re: Maven Weed 2007-12-20 17:15 Sha Jiang
    > 我是用Eclipse的Maven插件直接執行pom.xml文件的.所以命令要怎么打.
    > 打在哪我不知道..你教下嗎.
    我沒有使用Maven的Eclipse插件。
    但你能否先用命令去執行一下?先不管什么Eclipse插件了。

    > 你能加我QQ嗎125789067 遠程幫我看下
    我一般不用QQ,特別是在上班時。
    如果可以的話,加我的MSN:jiangshachina@hotmail.com  回復  更多評論
      

    # re: Maven Weed 2007-12-20 17:17 Sha Jiang
    > L2Emu:l2j-gameserver:jar:1.0.0
    這是你們的工程的artifact嗎?
    從上述信息中,看不出來原因。  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-21 11:15 新手
    Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.14 sec <<< FAILURE!
    testCreationWithStatSet

    ---(net.sf.l2j.gameserver.templates.TestL2NpcTemplate) Time elapsed: 0.094 sec <<< FAILURE!
    junit.framework.AssertionFailedError: expected:<UNKNOWN> but was:<null>
    at junit.framework.Assert.fail(Assert.java:47)
    at junit.framework.Assert.failNotEquals(Assert.java:282)
    at junit.framework.Assert.assertEquals(Assert.java:64)
    at junit.framework.Assert.assertEquals(Assert.java:71)
    at net.sf.l2j.gameserver.templates.TestL2NpcTemplate.testCreationWithStatSet(TestL2NpcTemplate.java:91)
    at net.sf.l2j.gameserver.templates.TestL2NpcTemplate.testCreationWithStatSet(TestL2NpcTemplate.java:91)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:163)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:244)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:814)

    出錯的好像是這里....不過我看不懂.幫我看下..MSN我不會用.郁悶  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-21 11:16 新手
    testCreationWithDefaultValueForSomeStats(net.sf.l2j.gameserver.templates.TestL2NpcTemplate) Time elapsed: 0 sec <<< FAILURE!
    junit.framework.AssertionFailedError: expected:<UNKNOWN> but was:<null>
    at junit.framework.Assert.fail(Assert.java:47)
    at junit.framework.Assert.failNotEquals(Assert.java:282)
    at junit.framework.Assert.assertEquals(Assert.java:64)
    at junit.framework.Assert.assertEquals(Assert.java:71)
    at net.sf.l2j.gameserver.templates.TestL2NpcTemplate.testCreationWithDefaultValueForSomeStats(TestL2NpcTemplate.java:154)
    at net.sf.l2j.gameserver.templates.TestL2NpcTemplate.testCreationWithDefaultValueForSomeStats(TestL2NpcTemplate.java:154)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:163)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:244)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:814)


    還有這里.兩個錯誤..  回復  更多評論
      

    # re: Maven Weed 2007-12-21 12:30 Sha Jiang
    沒有成功地通過單元測試,可能是應用程序不對,也可能是測試程序有問題。
    這些都是JUnit的問題,與Maven無關。  回復  更多評論
      

    # re: Maven Weed[未登錄] 2007-12-21 12:56 新手
    無關的話 那要如何解決呢.

    或者pom.xml這種文件.能用別的軟件生成jar嗎.  回復  更多評論
      

    # re: Maven Weed 2007-12-21 14:20 Sha Jiang
    > 或者pom.xml這種文件.能用別的軟件生成jar嗎.
    如果仍然使用pom.xml,那么就必須使用Maven。
    但也可以使用其它的build工具,如Ant,制作jar文件。

    其實,根據你的情況,可能只是在執行build的過程未能通過單元測試罷了,你不執行這個測試,看能不能完成build工作,并制作出jar文件。
    其實,我前面已經說了幾次,請你先跳過test這一步,看看執行mvn命令有能否成功。
    整個命令(mvn -Dmaven.test.skip=true package)也都給你了。你能否嘗試一下呢?!  回復  更多評論
      

    # re: Maven Weed(原) 2008-11-11 09:48 李睿凡
    樓主你好,拜讀大作.
    小弟使用maven2.0.9,搭建了一個struts basic項目
    使用mvn jetty:run-war能正常的跑起來 ,把war包扔到tomcat6.0.14上也能正常運行.

    而使用mvn tomcat:run-war就跑不起來 ,報異常說引用了多個版本的logging.log .
    使用這條命令(mvn tomcat:run-war)的時候,發現其使用的是tomcat5.5.15.

    請問怎么解決這個問題?
    另外,怎么指定讓maven用tomcat6運行?
    能讓它用我指定版本的tomcat運行,這應該是很需要的.

    謝謝!
    我的QQ:315920958  回復  更多評論
      

    主站蜘蛛池模板: 91热久久免费精品99| 亚洲国产精品久久| 国产亚洲自拍一区| 亚洲精品无码人妻无码| 久久aⅴ免费观看| 精品亚洲一区二区三区在线观看 | 中文字幕视频免费| 亚洲国产精品ⅴa在线观看| 欧美大尺寸SUV免费| 亚洲高清中文字幕| 6080午夜一级毛片免费看| 亚洲爱情岛论坛永久| 成人免费777777被爆出| 亚洲情侣偷拍精品| 一级做a爰片久久毛片免费陪 | 精品无码一级毛片免费视频观看| 全部免费毛片免费播放| 亚洲AV无码一区二区三区网址| 国产精品色午夜免费视频| 亚洲精品久久无码| 亚洲国产精品无码久久久不卡 | 免费观看的av毛片的网站| 亚洲精华国产精华精华液| 亚洲美女又黄又爽在线观看| 免费av片在线观看网站| 久久久久亚洲av无码尤物| 日韩精品视频免费观看| 国产黄色免费观看| 久久久综合亚洲色一区二区三区 | 亚洲天堂中文字幕| 亚洲v国产v天堂a无码久久| a一级爱做片免费| 亚洲中文字幕无码中文| 免费人成在线观看网站品爱网日本| 日韩插啊免费视频在线观看| 亚洲欧洲免费无码| 亚洲色偷偷av男人的天堂| 国产亚洲成AV人片在线观黄桃| 3344免费播放观看视频| 三上悠亚在线观看免费| 人成免费在线视频|