<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

       :: 首頁(yè) ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
      131 隨筆 :: 1 文章 :: 530 評(píng)論 :: 0 Trackbacks
    Maven入門--較復(fù)雜的實(shí)例
    本文將使用一個(gè)較復(fù)雜的實(shí)例,講述如何定制目錄布局(即不使用Maven標(biāo)準(zhǔn)目錄布局),以及講述一些關(guān)鍵插件的使用(配置)。為了方便其它朋友能夠方便地使用該實(shí)例,后臺(tái)數(shù)據(jù)庫(kù)使用開(kāi)源的面向?qū)ο髷?shù)據(jù)庫(kù)--db4o,該數(shù)據(jù)庫(kù)無(wú)需安裝,已包含在與本文配套的實(shí)例中,文末附有該實(shí)例的下載鏈接。(2007.01.02最后更新)
    注:轉(zhuǎn)載時(shí)請(qǐng)注明原作者(jiangshachina)及出處(http://www.tkk7.com/jiangshachina)!

    1 實(shí)例的構(gòu)想
    文章開(kāi)頭的摘要已經(jīng)講述了,本文仍然將以一個(gè)實(shí)例描述如何使用Maven,
    該實(shí)例將使用非Maven標(biāo)準(zhǔn)的目錄結(jié)構(gòu),并將呈現(xiàn)一些關(guān)鍵的Maven插件的配置與應(yīng)用。 該實(shí)例是一個(gè)基于db4o的數(shù)據(jù)庫(kù)Web應(yīng)用。該應(yīng)用本身十分簡(jiǎn)單,即從db4o數(shù)據(jù)庫(kù)中查詢出若干記錄并將它們顯現(xiàn)在Web頁(yè)面中。
        該實(shí)例仍然由一個(gè)普通應(yīng)用工程(demo-app)與一個(gè)Web應(yīng)用工程(demo-web),以及這兩個(gè)工程的父工程(demo)構(gòu)成,最終的目標(biāo)是將Web應(yīng)用工程制作成war文件,并部署到JBoss服務(wù)器中。啟動(dòng)服務(wù)器后,能夠在頁(yè)面中看到正確的查詢結(jié)果。
        該實(shí)例使用Eclipse3.2 + JDK1.5.0_10 + Windows2000開(kāi)發(fā)。當(dāng)然這僅僅只是我個(gè)人的開(kāi)發(fā)平臺(tái),但該實(shí)例并不受限于此平臺(tái);由于我選擇使用db4o針對(duì)JDK1.5的產(chǎn)品包,所以該實(shí)例只能運(yùn)行在JDK1.5.0或更高版本的JDK/JRE中; 該工程中的所有文件都使用UTF-8編碼方式。

    2 demo工程
    demo工程是其它兩個(gè)工程的父工程,它的主要職責(zé)是預(yù)定義子工程所需要依賴的jar文件(artifact),以及針對(duì)子工程所使用的插件進(jìn)行通用配置。該工程完整的POM文件如下所示:
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>mvn.demo</groupId>
        <artifactId>demo</artifactId>
        <packaging>pom</packaging>
        <version>
    1.0-SNAPSHOT</version>
        <description>Maven Demo Project</description>

        <modules>
            <module>demo-app</module>
            <module>demo-web</module>
        </modules>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>mvn.demo</groupId>
                    <artifactId>demo-app</artifactId>
                    <version>${project.version}</version>
                </dependency>
                <dependency>
                    <groupId>mvn.demo</groupId>
                    <artifactId>demo-web</artifactId>
                    <version>${project.version}</version>
                </dependency>
                <dependency>
                    <groupId>com.db4o</groupId>
                    <artifactId>db4o-java5</artifactId>
                    <version>
    5.5</version>
                </dependency>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>
    2.4</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>commons-configuration</groupId>
                    <artifactId>commons-configuration</artifactId>
                    <version>
    1.2</version>
                    <exclusions>
                        <exclusion>
                            <groupId>dom4j</groupId>
                            <artifactId>dom4j</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>xml-apis</groupId>
                            <artifactId>xml-apis</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>xalan</groupId>
                            <artifactId>xalan</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>xerces</groupId>
                            <artifactId>xercesImpl</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <dependencies>
            <dependency>
            <groupId>junit</groupId>
             <artifactId>junit</artifactId>
               <version>
    3.8.1</version>
          <scope>test</scope>
        </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <encoding>UTF-
    8</encoding>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>
    1.5</source>
                        <target>
    1.5</target>
                        <encoding>UTF-
    8</encoding>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <charset>UTF16</charset>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
        預(yù)定義工程的依賴關(guān)系,就是把會(huì)被子工程依賴的artifact的詳細(xì)信息(groupId,artifactId,version,...)先聲明到<dependencyManagement>中。然后子工程只需要聲明使用某個(gè)artifact就可以了,即那時(shí)只需要設(shè)置groupId和artifactId(甚至更少)就可以了。
    <dependencyManagement>中聲明的artifact并不一定真的會(huì)被使用到
    2.1 聲明依賴關(guān)系
        根據(jù)實(shí)際情況,
    該實(shí)例 需要使用db4o針對(duì)java5的產(chǎn)品包(jar文件)。由于該jar文件并不存在于Maven的中央倉(cāng)庫(kù)中,所以我們不能直接通過(guò)Maven獲得該jar文件。我們只能另外下載db4o-5.5(Java版)的壓縮包,然后從壓縮包內(nèi)獲得db4o-java5.jar。得到該jar后,必須先將它安裝到Maven的本地倉(cāng)庫(kù)中(安裝方法參見(jiàn)資源[1],主題"向本地倉(cāng)庫(kù)安裝文件時(shí)要生成POM文件"),以備后面的使用。此處將該artifact的groupId定義為com.db4o,artifactId定義為db4o-java5,version自然就是5.5了(請(qǐng)見(jiàn)上述POM腳本)。
        由于該實(shí)例最終是一個(gè)Web應(yīng)用,所以它至少需要依賴Servlet的包(servlet-api-2.4.jar),還需要commons-configuration-1.2.jar。這兩個(gè)artifact都已經(jīng)存在于Maven中央倉(cāng)庫(kù)中,所以我查找到它們后,按照Maven中央倉(cāng)庫(kù)的命名將它們聲明到了<dependencyManagement>中(請(qǐng)見(jiàn)上述POM腳本)。junit是進(jìn)行單元測(cè)試時(shí)使用的artifact,(假設(shè))它肯定會(huì)被每個(gè)工程使用,所以沒(méi)有將它設(shè)置到 <dependencyManagement>中,而直接設(shè)置到了 <dependency>中。
        細(xì)心的朋友肯定已經(jīng)發(fā)現(xiàn)了,針對(duì) commons-configuration的依賴聲明處多了一些語(yǔ)句。從表面上看,應(yīng)該是排除了4個(gè)artifact(dom4j, xml-apis , xalan xerces )。不錯(cuò),就是排除了這4個(gè)jar文件(artifact)。如果有興趣的話,可以將整個(gè)<exclusions>元素刪除,然后再嘗試一下制作war文件。你會(huì)發(fā)現(xiàn)在WEB-INF/lib目錄下存在著這4個(gè)artifact對(duì)應(yīng)的jar文件。那我為什么要將它們“排除”呢?因?yàn)椋鼈兪嵌嘤嗟?!即,它們?duì)于我的這個(gè)Web應(yīng)用來(lái)說(shuō),根本就是無(wú)用的!
        Maven2加入了一個(gè)很好的特性:自動(dòng)加載“依賴的依賴(Transitive Dependency)”。以commons-configuration為例。為了能夠讓它運(yùn)行正常,我們實(shí)際上還需要其它一些jar(artifact),如commons-collections,commons-lang,...。但這些artifact我都沒(méi)有“顯示”地聲明需要依賴它們,但Maven會(huì)自動(dòng)加載,因?yàn)?/font> commons-configuration的POM文件將它們聲明為了dependency 。
        既然那個(gè)4個(gè)artifact是commons-configuration的依賴,為什么會(huì)認(rèn)為它們是無(wú)用的呢?實(shí)際上,它們就不應(yīng)該被聲明到commons-configuration的依賴關(guān)系中。這是commons-configuration開(kāi)發(fā)者的失誤,他們沒(méi)有將依賴關(guān)系整理清晰,而將一些確實(shí)既不是runtime,更不是compile-time需要的artifact放入到了依賴關(guān)系中。在Maven中央倉(cāng)庫(kù)中存在著很多這種情況,所以我們有時(shí)需要弄清楚“哪些文件是我們真正需要的,哪些是可以被清除的”。但有時(shí)候,很難做到一個(gè)不漏。正是由于這一原因,自動(dòng)加載Transitive Dependency這一極好的特性,有時(shí)讓人十分無(wú)奈 ^_^
    2.2 對(duì)插件進(jìn)行基本配置
    我們可以把對(duì)插件的全局性(如針對(duì)整個(gè)項(xiàng)目的)設(shè)置放到較高層次的POM文件中,因?yàn)樗鼈儽辉O(shè)置后,子工程們就會(huì)自然遵守它們,而且可以使每個(gè)子工程的情況都是一樣的。
        在第1節(jié)中,已經(jīng)表明該工程使用JDK1.5平臺(tái),并且所有文件都使用UTF-8
    的編碼方式。而Maven默認(rèn)使用JDK1.3級(jí)別的javac編譯器;默認(rèn)使用本地編碼方式(簡(jiǎn)體中文Windows操作系統(tǒng)默認(rèn)使用GBK編碼方式)處理文件。這樣就必須對(duì)Maven進(jìn)行適當(dāng)設(shè)置,以滿足工程的實(shí)際需要。
        針對(duì)資源文件的處理,Maven使用maven-resources-plugin插件,需要將它的編碼方式設(shè)置為UTF-8。編譯Java源文件,是使用maven-compiler-plugin插件,需要將它的source(Java源文件)與target(class文件)的級(jí)別都設(shè)置為1.5,另外還要將它的encoding方式設(shè)置為UTF-8。(詳細(xì)設(shè)置請(qǐng)見(jiàn)POM腳本)

    3 demo-app工程
    demo-app工程是一個(gè)普通應(yīng)用程序工程,它用于處理和數(shù)據(jù)庫(kù)相關(guān)的操作,如針對(duì)數(shù)據(jù)庫(kù)的增、刪、改、查等基本功能。該工程POM文件的主要內(nèi)容如下所示:
    <project>
        ......

        <build>
            <finalName>app</finalName>
            <directory>target</directory>

            <sourceDirectory>src/java</sourceDirectory>
            <outputDirectory>target/classes</outputDirectory>
            <resources>
                <resource>
                    <directory>src/java</directory>
                    <excludes>
                        <exclude>**/*.java</exclude>
                    </excludes>
                </resource>
            </resources>

            <testSourceDirectory>src/test/java</testSourceDirectory>
            <testOutputDirectory>target/test-classes</testOutputDirectory>
            <testResources>
                <testResource>
                    <directory>src/test/java</directory>
                    <excludes>
                        <exclude>**/*.java</exclude>
                    </excludes>
                </testResource>
            </testResources>
        </build>
    </project>
        文章的開(kāi)頭已經(jīng)提到,本實(shí)例將會(huì)使用定制的目錄結(jié)構(gòu),但在前面卻一字不提此事,現(xiàn)在將描述如何定制目錄結(jié)構(gòu)。Maven的標(biāo)準(zhǔn)目錄結(jié)構(gòu)其實(shí)是在Super POM中設(shè)置的,由于任何POM都會(huì)繼承該P(yáng)OM,所以所有的工作都會(huì)默認(rèn)使用標(biāo)準(zhǔn)目錄結(jié)構(gòu)。要定制目錄,其實(shí)就是需要重新設(shè)置相關(guān)參數(shù)的值,即用新值覆蓋Super POM中的值。
    [1]<finalName>,該元素指定了工程輸出的artifact的名稱,默認(rèn)值為${artifactId}-${version},此處修改為app。
    [2]<directory>,該元素指定了工程輸出的目標(biāo)目錄。默認(rèn)值為target,此處未修改變。
    [3]<sourceDirectory>,該元素指定了Java源文件所在的目錄。默認(rèn)值為src/main/java,此處修改為src/java。
    [4]<outputDirectory>,該元素指定了編譯后的class文件的放置目錄。默認(rèn)值為target/classes,此處未作改變。
    [5]<resources> <resource>,該元素指定了Java源文件使用的資源文件的存放目錄。默認(rèn)值為src/main/resources,此處修改為src/java。由于在編碼Java源文件時(shí),Maven會(huì)將資源路徑中的文件全部拷貝到classes目錄。而此時(shí)將Java資源文件目錄與Java源文件目錄,設(shè)置為同一目錄,所以需要將.java文件排除在資源文件的范疇之外( <exclude>**/*.java</exclude> )。
    [6]
    <testSourceDirectory>,該元素指定了單元測(cè)試Java源文件的放置目錄。默認(rèn)值為src/test/java,此處未作修改。
    [7]
    <testOutputDirectory>,該元素指定了單元測(cè)試Java源文件編譯后的class文件放置目錄。默認(rèn)值為 target/test-classes,此處未作改變。
    [8]
    <testResources> <testResource>,該元素指定了單元測(cè)試Java源文件所使用的資源文件的放置目錄。默認(rèn)值為src/test/resources,此處修改為 src/test/java。并且也做了與 設(shè)置<resources> <resource>時(shí)相同的處理(排除Java源文件)。
        通過(guò)上述設(shè)置后,就可以擁有一個(gè)定制的Maven工程目錄結(jié)構(gòu)了。

    4 demo-web工程
    demo-web工程是整個(gè)應(yīng)用最終的目標(biāo)輸出,因?yàn)榇颂幍哪康木褪侵谱饕粋€(gè)war文件,然后將它部署到JBoss服務(wù)器中。與demo-app工程相比,demo-web工程的POM文件主要有如下不同內(nèi)容:
    <project >
        ......
        <build>
            ......
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>
    2.0.1 </version>
                    <configuration>
                        <webappDirectory>target/${artifactId}</webappDirectory>
                        <warSourceDirectory>src/webapp</warSourceDirectory>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jboss-maven-plugin</artifactId>
                    <version>
    1.3.1 </version>
                    <configuration>
                        <jbossHome>E:/jboss-
    4.0.2 </jbossHome>
                        <serverName>default</serverName>
                        <fileName>
                            ${project.build.directory}/${project.build.finalName}.${project.packaging}
                        </fileName>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    可以看出不同之處就在于對(duì)maven-war-plguin及jboss-maven-plugin插件的配置與使用。
        Maven使用maven-war-plugin插件對(duì)Web工程制作war文件。由于本文使用了定制目錄結(jié)構(gòu),這樣則會(huì)使maven-war-plugin無(wú)法找到Web工程的Web Root目錄(默認(rèn)是src/main/webapp),所以需要對(duì)該插件進(jìn)行適當(dāng)?shù)嘏渲谩?lt;warSourceDirectory>就是Web工程的Web Root目錄,此處設(shè)置為;<webappDirectory>是制作war文件之前,相當(dāng)于是一個(gè)被打開(kāi)(exploded)的war文件的根目錄(默認(rèn)是target/artifactId-version)。
        該工程的腳本中,還使用了一個(gè)JBoss插件。該插件可以將制作好的war文件部署(實(shí)質(zhì)上是拷貝)到指定的JBoss部署目錄中。<jbossHome>是JBoss的安裝根目錄,<serverName>指JBoss Server的名稱,<fileName>是被部署war文件的名稱。

    參考資源
    [1]Maven入門--概念與實(shí)例. http://www.tkk7.com/jiangshachina/archive/2006/09/01/67080.html
    [2]Maven + Continuum Weed. http://www.tkk7.com/jiangshachina/archive/2006/09/11/68944.aspx
    [3]Maven POM Reference. http://maven.apache.org/pom.html
    [3]db4o. http://www.db4objects.com
    本文實(shí)例下載地址--http://www.tkk7.com/files/jiangshachina/mvn-demo.rar

    posted on 2006-12-12 18:03 John Jiang 閱讀(12712) 評(píng)論(21)  編輯  收藏 所屬分類: JavaSE 、Database 、Mavendb4o 、原創(chuàng)

    評(píng)論

    # re: Maven入門--較復(fù)雜的實(shí)例 2006-12-18 00:48 Joeaniu
    贊,寫(xiě)得很清晰~   回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2006-12-18 08:48 Sha Jiang
    謝謝夸獎(jiǎng) ^_^
    本文我將會(huì)進(jìn)行修改,還有些內(nèi)容沒(méi)有介紹到。
    而且不必將每個(gè)工程的POM文件完整內(nèi)容帖上來(lái),只需要針對(duì)特定的腳本片斷進(jìn)行說(shuō)明就可以了。POM的完整內(nèi)容應(yīng)該是看源文件的。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2006-12-20 21:30 向大家學(xué)習(xí)
    學(xué)習(xí)了 寫(xiě)的很好  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2006-12-23 18:31 Sha Jiang
    剛剛在IBM的developerWorks中看到一篇介紹Maven2的好文章,不敢獨(dú)享 ^_^
    http://www-128.ibm.com/developerworks/edu/j-dw-java-mavenv2.html?S_TACT=105AGX02&S_CMP=HP
    不過(guò),需要首先注冊(cè)才能閱讀全文。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-06-24 23:01 sitinspring
    很好,很詳細(xì),值得學(xué)習(xí).

      回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-06-25 08:15 Sha Jiang
    謝謝!  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-06-28 16:49 sitinspring
    我用Maven一直有一個(gè)疑惑,就是文件總是需要拷貝來(lái)拷貝去,只有用Bat或者Srcipt解決,但也麻煩,不只你是如何解決這個(gè)問(wèn)題的?用Continuun能否避免這個(gè)麻煩?
      回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-06-29 08:53 Sha Jiang
    > 我用Maven一直有一個(gè)疑惑,就是文件總是需要拷貝來(lái)拷貝去,
    > 只有用Bat或者Srcipt解決,但也麻煩,不只你是如何解決這個(gè)問(wèn)題的?
    不明白你的意思?
    為什么要將文件"拷貝來(lái)拷貝去"?只要把它們放到"合適"的地方就可以了啊。
    Bat肯定是不用的,否則無(wú)法將這個(gè)工程移植到其它地方(Linux中能用bat文件嗎?)。
    Script?如果你是指Ant的腳本,有時(shí)會(huì)用一些,但應(yīng)該將它的數(shù)量保持在一個(gè)很小的水平上。

    > 用Continuun能否避免這個(gè)麻煩?
    Continuum是持續(xù)集成服務(wù)器,它只會(huì)根據(jù)Maven(也其它幾種build工具)工程中的Maven腳本去執(zhí)行具體的Build工作。
    所以這個(gè)問(wèn)題與Continuum無(wú)關(guān),關(guān)鍵是在Maven本身。

    P.S.
    如果你看了我的其它"留言回復(fù)"的話,就會(huì)知道我是使用CruiseControl。
    Continuum集成Maven工程十分簡(jiǎn)便,但它的功能目前還較弱,而且CC作為最老牌的持續(xù)集成工具,使用的范圍很廣,所以最好還是決定使用CC。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-06-29 08:57 Sha Jiang
    > 所以最好還是決定使用CC
    No No No,寫(xiě)錯(cuò)了,不是"最好",應(yīng)該是"最后"。
    一字之差,千里之謬。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例[未登錄](méi) 2007-06-29 15:43 sitinspring
    Thanks! I will try it.  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例 2007-07-02 08:22 Sha Jiang
    Good Luck!  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2007-10-15 14:37 嶺南
    使用這個(gè)東東覺(jué)得很不爽,寫(xiě)一大堆配置
    還時(shí)不時(shí)要到命令行下去搞一伙。
    覺(jué)得反而不方便。
    用Myeclipse一下全搞定。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2007-10-15 17:18 Sha Jiang
    to 嶺南:
    與使用Ant相比,Maven的學(xué)習(xí)難度要稍大一些。
    但弄懂Maven的基本原理/應(yīng)用后,再使用它,就不會(huì)覺(jué)得困難了。

    而且不可否認(rèn)的是,Maven對(duì)于開(kāi)發(fā)者的友好性也確實(shí)要差一些。
    Maven的標(biāo)準(zhǔn)目錄結(jié)構(gòu)可能與開(kāi)發(fā)者的習(xí)慣或所用開(kāi)發(fā)工具的特性有沖突。
    通過(guò)定制目錄結(jié)構(gòu)應(yīng)該可以較好的解決這個(gè)問(wèn)題。
    而且Maven的標(biāo)準(zhǔn)目錄結(jié)構(gòu)本身就有利于開(kāi)發(fā),所以也不應(yīng)該對(duì)它進(jìn)行大的修改。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2008-04-21 16:39 chamborghini
    受益匪淺,收藏了  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2008-12-25 09:56 Yvon
    寫(xiě)得蠻好,謝謝  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2009-06-24 16:44 kting
    寫(xiě)的很好,很有價(jià)值,受益。  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2010-12-02 15:46 Rosen
    感謝選用db4o做demo:)  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2011-09-14 15:53 Tony.Wang
    我看上的是可以對(duì)幾個(gè)工程統(tǒng)一編譯和打包,這個(gè)相對(duì)ANT就好多了,研究了兩三天,知道些皮毛了,看來(lái)要好好實(shí)踐一個(gè)復(fù)雜的例子試試了  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原)[未登錄](méi) 2012-10-03 16:16 tony
    再次感謝樓主  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2014-04-29 17:45 Gemma
    我運(yùn)行demo的實(shí)例的時(shí)候報(bào)錯(cuò),說(shuō)設(shè)備未就緒。
    好像是數(shù)據(jù)庫(kù)的問(wèn)題,第一次接觸db4o,
    請(qǐng)問(wèn)dbFile=D:/Download/book.yap這個(gè)文件在哪?  回復(fù)  更多評(píng)論
      

    # re: Maven入門--較復(fù)雜的實(shí)例(原) 2014-04-29 17:54 Sha Jiang
    @Gemma
    貌似這個(gè)問(wèn)題已經(jīng)存在七年多的時(shí)間了@_@
    不過(guò),程序是否能最終運(yùn)行成功,其實(shí)也無(wú)所謂吧。你可以修改下源代碼。
    另外,你們?yōu)槭裁床挥肎radle呢?Maven有被它取代的趨勢(shì)。  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲色大成网站WWW久久九九| 亚洲国产精品综合久久网络 | 国产在线19禁免费观看国产| 亚洲色一色噜一噜噜噜| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲av午夜福利精品一区人妖| 337p日本欧洲亚洲大胆色噜噜| 亚洲爆乳少妇无码激情| a级在线免费观看| 成人五级毛片免费播放| 亚洲精品无码久久久久去q| 亚洲人成影院午夜网站| www免费插插视频| 午夜福利不卡片在线播放免费| 免费中文字幕不卡视频| 亚洲精品综合久久中文字幕 | 中文字幕无码毛片免费看| 成人超污免费网站在线看| 亚洲av无码不卡| 黄色网址免费在线| 97视频热人人精品免费| 国产亚洲AV手机在线观看| 亚洲人成色99999在线观看| 182tv免费视频在线观看| 四虎影视永久免费观看地址| 亚洲制服丝袜精品久久| a视频在线免费观看| 又粗又大又猛又爽免费视频 | 国产高清对白在线观看免费91| 国产成人无码免费看视频软件| 亚洲AV无码日韩AV无码导航| 黄页免费视频播放在线播放| 日韩精品福利片午夜免费观着 | 亚洲精品国产综合久久久久紧| 99视频免费播放| 在线观看亚洲天天一三视| 亚洲精品精华液一区二区| 国产在线观看麻豆91精品免费 | 亚洲av午夜电影在线观看| 中文字幕免费在线看线人 | 亚洲图片中文字幕|