最近几年来,地理信息系统无论是在理论上还是应用上都处在一个飞速发展的阶段。 GIS被应用于多个领域的建模和决策支持,如城市管理、区划、环境整治等等,地理信息成为信息时代重要的组成部分之一; “数字地球”概念的提出,更进一步推动了作为其技术支撑的GIS的发展。 与此同时,一些学者致力于相关的理论研究,如空间感知、空间数据误差、空间关系的形式化等等。 这恰好说明了地理信息系统作为应用技术和学科的两个方面,并且这两个方面构成了相互促进的发展过程。
A large software application usually contains multiple modules, and the usual scenario is that multiple teams develop different modules of the same application. For example, imagine that one team develops the front end of the application and the project is app-ui (app-ui.jar:1.0), while the background of another team developing the application uses the project data-service (data-service.jar:1.0).
What may happen now is that the team that developed data-service is doing fast-paced bug fixes or project improvements, and they publish the library to the remote repository almost every other day. Now if the data-service team uploads a new version every other day, the following problems will arise:
The data-service team informs the app-ui team every time the updated code is released.
The app-ui team needs to update their pom.xml files to the latest version frequently.
In order to solve this situation, 快照 The concept came in handy. A snapshot is a special version that specifies a copy of the current development progress. Unlike the regular version, Maven checks for new snapshots in the remote repository with each build. Now the data-service team publishes a snapshot of the updated code to the repository, such as data-service:1.0-SNAPSHOT, to replace the old snapshot jar package. For versions, if Maven has previously downloaded the specified version file, for example, data-service:1.0,Maven will not download the new available version 1.0 file from the repository. To download the updated code, the version of data-service needs to be upgraded to 1.1. In the case of snapshots, each time the app-ui team builds their project, Maven automatically takes the latest snapshot (data-service:1.0-SNAPSHOT). The app-ui project uses a 1.0 snapshot of the data-service project. The data-service project releases 1. 0 snapshots for each small change. Although, in the case of snapshots, Maven automatically takes the latest snapshots in its daily work, you can use the-U parameter in any maven command to force maven to download the latest snapshot builds. Let’s open the command console, go to the C:> MVN > app-ui directory, and execute the following mvn command. Maven will start building the project after downloading the latest snapshot of data-service. 11.13.1. What is a snapshot? ¶
11.13.2. Project Snapshot vs version ¶
11.13.3. Pom.xml file for app-ui project ¶
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
11.13.4. Pom.xml file for data-service project ¶
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
mvn clean package -U
C:\MVN\app-ui>mvn clean package -U
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------- [INFO] Building consumerBanking [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------- [INFO] Downloading data-service:1.0-SNAPSHOT [INFO] 290K downloaded. [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting directory C:\MVN\app-ui\target [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\main\ resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 1 source file to C:\MVN\app-ui\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\test\ resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 1 source file to C:\MVN\app-ui\target\test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: C:\MVN\app-ui\target\ surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.companyname.bank.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: C:\MVN\app-ui\target\ app-ui-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Tue Jul 10 16:52:18 IST 2012 [INFO] Final Memory: 16M/89M [INFO] ------------------------------------------------------------------------