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

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

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

    MAVEN:如何為開發(fā)和生產(chǎn)環(huán)境建立不同的配置文件 --我的簡潔方案

    其實(shí)也是最近才看Maven, 以前都是用ant+ivy, 對于輕量級的項(xiàng)目來說足夠了, 而且非常靈活.

    看了看Maven, 約定.... 現(xiàn)在編程都說約定, 約定是挺好, 問題是超出約定的事情太多了, 到頭來還要依賴其他東西, 真不想用maven啊.

    以前我們開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置文件都是單獨(dú)分開目錄存放的, ant腳本搞個變量就自動打包不同的文件了. 我覺得管理起來也很容易, 所以看到很多maven為解決開發(fā)/生產(chǎn)環(huán)境的方案真是不太理解啊:
      1. 什么 ${your.configuration}, 和spring的東西都差不多了, 配置寫到腳本里去了,....這叫啥配置...
      2. 調(diào)用ant....

    還是根據(jù)我以前的思路:

     src/main目錄下原來有 java, resources, 我新建幾個目錄: resources-dev, resources-test, resources-prod.

    resources --- 一些共享的配置文件, 一般不需要修改的
    resources-dev --- 開發(fā)環(huán)境下用的配置文件, 和resources目錄下文件沒有重合.
    resources-prod --- 生產(chǎn)環(huán)境下用的配置文件, 和resources目錄下文件沒有重合.


    本機(jī)開發(fā)的時候設(shè)置源碼目錄為 java, resources, resources-dev, 可以直接開發(fā)調(diào)試.

    編譯的時候希望maven根據(jù)不同環(huán)境, 打包不同的目錄下的文件, 我們利用maven的profile和build-helper-maven-plugin插件就可以實(shí)現(xiàn).

        <profiles>
            
    <profile>
                
    <id>dev</id>
                
    <build>
                    
    <plugins>
                        
    <plugin>
                            
    <groupId>org.codehaus.mojo</groupId>
                            
    <artifactId>build-helper-maven-plugin</artifactId>
                            
    <version>1.5</version>
                            
    <executions>
                                
    <execution>
                                    
    <id>add-resource</id>
                                    
    <phase>generate-resources</phase>
                                    
    <goals>
                                        
    <goal>add-resource</goal>
                                    
    </goals>
                                    
    <configuration>
                                        
    <resources>
                                            
    <resource>
                                                
    <directory>src/main/resources_dev</directory>
                                            
    </resource>
                                        
    </resources>
                                    
    </configuration>
                                
    </execution>
                            
    </executions>
                        
    </plugin>
                        
    <plugin>
                            
    <artifactId>maven-war-plugin</artifactId>
                            
    <executions>
                                
    <execution>
                                    
    <phase>package</phase>
                                    
    <goals>
                                        
    <goal>war</goal>
                                    
    </goals>
                                    
    <configuration>
                                        
    <classifier>dev</classifier>
                                    
    </configuration>
                                
    </execution>
                            
    </executions>
                        
    </plugin>

                    
    </plugins>
                
    </build>
            
    </profile>
            
    <profile>
                
    <id>test</id>
                
    <build>
                    
    <plugins>
                        
    <plugin>
                            
    <groupId>org.codehaus.mojo</groupId>
                            
    <artifactId>build-helper-maven-plugin</artifactId>
                            
    <version>1.5</version>
                            
    <executions>
                                
    <execution>
                                    
    <id>add-resource</id>
                                    
    <phase>generate-resources</phase>
                                    
    <goals>
                                        
    <goal>add-resource</goal>
                                    
    </goals>
                                    
    <configuration>
                                        
    <resources>
                                            
    <resource>
                                                
    <directory>src/main/resources_test</directory>
                                            
    </resource>
                                        
    </resources>
                                    
    </configuration>
                                
    </execution>
                            
    </executions>
                        
    </plugin>
                        
    <plugin>
                            
    <groupId>org.apache.maven.plugins</groupId>
                            
    <artifactId>maven-war-plugin</artifactId>
                            
    <executions>
                                
    <execution>
                                    
    <phase>package</phase>
                                    
    <goals>
                                        
    <goal>war</goal>
                                    
    </goals>
                                    
    <configuration>
                                        
    <classifier>test</classifier>
                                    
    </configuration>
                                
    </execution>
                            
    </executions>
                        
    </plugin>
                    
    </plugins>
                
    </build>
            
    </profile>
        
    </profiles>

    (文章后面有簡化版本)

    自己根據(jù)實(shí)際的部署環(huán)境修改吧, 運(yùn)行 mvn package -P test 就可以打包了.


    反正很簡單啦. 一大堆xml, 有用的沒幾句....太羅嗦了


    另:目前開發(fā)用resin, intellij idea 9, 調(diào)試時webapp在開發(fā)目錄webapp下就地開發(fā), 所以我的maven腳本還有如下部分:

        <build>
            
    <plugins>
                
    <plugin>
                    
    <groupId>org.apache.maven.plugins</groupId>
                    
    <artifactId>maven-war-plugin</artifactId>
                    
    <version>2.1</version>
                    
    <configuration>
                        
    <warSourceExcludes>WEB-INF/lib/**,WEB-INF/classes/**,WEB-INF/work/**,WEB-INF/tmp/**</warSourceExcludes>
                        
    <archive>
                          
    <addMavenDescriptor>false</addMavenDescriptor>
                        
    </archive>
                    
    </configuration>
                
    </plugin>
            
    </plugins>
        
    </build>


    這部分是公用的, 當(dāng)然dev時候也不用打包.... 所以........ 可以用于本機(jī)開發(fā), 打包到test, production等環(huán)境.



    總之部署上maven不如ant靈活, ant寫一套腳本一般來說也很少修改了.... 想改特容易. maven想復(fù)制個目錄都要想法....


    ______________________________________________
    簡化后的版本:

        <properties>
           
    <package.target>notexists</package.target>
        
    </properties>
        
        
    <profiles>
            
    <profile>
                
    <id>dev</id>
                
    <properties>
                     
    <package.target>dev</package.target>
                
    </properties>
            
    </profile>
            
    <profile>
                
    <id>test</id>
                
    <properties>
                     
    <package.target>test</package.target>
                
    </properties>
            
    </profile>
        
    </profiles>

        
    <build>
            
    <plugins>
                
    <plugin>
                    
    <groupId>org.codehaus.mojo</groupId>
                    
    <artifactId>build-helper-maven-plugin</artifactId>
                    
    <version>1.5</version>
                    
    <executions>
                        
    <execution>
                            
    <id>add-resource</id>
                            
    <phase>generate-resources</phase>
                            
    <goals>
                                
    <goal>add-resource</goal>
                            
    </goals>
                            
    <configuration>
                                
    <resources>
                                    
    <resource>
                                        
    <directory>src/main/resources_${package.target}</directory>
                                    
    </resource>
                                
    </resources>
                            
    </configuration>
                        
    </execution>
                    
    </executions>
                
    </plugin>
                
    <plugin>
                    
    <groupId>org.apache.maven.plugins</groupId>
                    
    <artifactId>maven-war-plugin</artifactId>
                    
    <version>2.1</version>
                    
    <configuration>
                        
    <warSourceExcludes>WEB-INF/lib/**,WEB-INF/classes/**,WEB-INF/work/**,WEB-INF/tmp/**</warSourceExcludes>
                        
    <archive>
                          
    <addMavenDescriptor>false</addMavenDescriptor>
                        
    </archive>
                    
    </configuration>
                    
    <executions>
                        
    <execution>
                            
    <phase>package</phase>
                            
    <goals>
                                
    <goal>war</goal>
                            
    </goals>
                            
    <configuration>
                                
    <classifier>${package.target}</classifier>
                            
    </configuration>
                        
    </execution>
                    
    </executions>
                
    </plugin>
            
    </plugins>
        
    </build>



    posted on 2010-10-27 22:31 Scud(飛云小俠) 閱讀(11798) 評論(3)  編輯  收藏 所屬分類: Java

    評論

    # re: MAVEN:如何為開發(fā)和生產(chǎn)環(huán)境建立不同的配置文件 --我的簡潔方案 2010-10-28 10:35 Scud(飛云小俠)

    http://jdkcn.com/entry/pack-different-package-by-environment-in-maven.html

    http://hi.baidu.com/guorabbit/blog/item/a908adeff31eec1dfdfa3cbb.html

    上面這2個也可以, 不過只能用于package了.

    看了上面2個方案, 發(fā)現(xiàn)我的方案也可以簡化, 就是profile里面只定義變量就可以了, 其他公用的提取出來用變量.  回復(fù)  更多評論   

    # re: MAVEN:如何為開發(fā)和生產(chǎn)環(huán)境建立不同的配置文件 --我的簡潔方案 2010-10-28 18:51 jacklondon

    如何為開發(fā)和生產(chǎn)環(huán)境建立不同的配置文件 --我用ANT+ bat批處理環(huán)境變量  回復(fù)  更多評論   

    # re: MAVEN:如何為開發(fā)和生產(chǎn)環(huán)境建立不同的配置文件 --我的簡潔方案[未登錄] 2013-09-18 16:20 過客

    謝謝!很不錯!已經(jīng)用上了!  回復(fù)  更多評論   

    <2013年9月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    文章發(fā)布許可
    創(chuàng)造共用協(xié)議:署名,非商業(yè),保持一致

    我的郵件
    cnscud # gmail


    常用鏈接

    留言簿(15)

    隨筆分類(113)

    隨筆檔案(103)

    相冊

    友情鏈接

    技術(shù)網(wǎng)站

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费观看亚洲人成网站| 国产亚洲自拍一区| 青青青国产手机频在线免费观看 | 成人免费男女视频网站慢动作 | 免费在线观看亚洲| 欧美亚洲精品一区二区| 91成人免费观看在线观看| 久久久久亚洲av毛片大| 两个人看的www免费高清| 四色在线精品免费观看| 亚洲AV无码一区二区一二区| 国产免费啪嗒啪嗒视频看看| 亚洲网站在线观看| 精品香蕉在线观看免费| 亚洲熟妇少妇任你躁在线观看无码| 亚洲性一级理论片在线观看| 亚洲第一网站免费视频| 亚洲中文字幕无码日韩| 91免费福利精品国产| 亚洲一区在线观看视频| a级黄色毛片免费播放视频| 亚洲一区影音先锋色资源| 丁香花免费高清视频完整版| 亚洲成a人片在线观看日本 | 中国在线观看免费的www| 亚洲人成伊人成综合网久久| 最近2022中文字幕免费视频| 免费可以在线看A∨网站| 男人都懂www深夜免费网站| 久久亚洲熟女cc98cm| 成熟女人牲交片免费观看视频| 亚洲AV成人无码网天堂| 亚洲色大成网站www永久一区| 日韩精品人妻系列无码专区免费 | 色网站在线免费观看| 久操免费在线观看| 国产亚洲福利在线视频| 精品免费久久久久久久| 国产精品亚洲精品爽爽| 亚洲AV永久纯肉无码精品动漫 | 青青免费在线视频|